SketchPad

Some web space to sketch, doodle and make notes. Made using these tools. See more of my work here.

Daily Sketches

Sketch 2015-06-19

        void ofApp::setupAnim() {
    timeline.setOutPointAtFrame(48);
    timeline.addCurves("layer-1-alpha", ofRange(0, 255));
    timeline.addCurves("layer-2-alpha", ofRange(0, 255));
    timeline.addCurves("layer-3-alpha", ofRange(0, 255));
    timeline.addCurves("layer-1-scale", ofRange(1, 4));
    timeline.addCurves("layer-2-scale", ofRange(1, 4));
    timeline.addCurves("layer-3-scale", ofRange(1, 4));
    timeline.addCurves("layer-1-x", ofRange(0, 1));
    timeline.addCurves("layer-1-y", ofRange(0, 1));
    timeline.addCurves("layer-2-x", ofRange(0, 1));
    timeline.addCurves("layer-2-y", ofRange(0, 1));
    timeline.addCurves("layer-3-x", ofRange(0, 1));
    timeline.addCurves("layer-3-y", ofRange(0, 1));
    timeline.togglePlay();

    leafVertical.setup("leaf-vertical.png", width, height, 2, TEXTURE_OFFSET_BOTTOM_RIGHT);
    leafDiagonal.setup("leaf-diagonal.png", width, height, 2, TEXTURE_OFFSET_BOTTOM_RIGHT);
    leafStar.setup("leaf-star.png", width, height, 2, TEXTURE_OFFSET_MIDDLE_CENTER);
    planes.push_back(&leafVertical);
    planes.push_back(&leafDiagonal);
    planes.push_back(&leafStar);

    masker.setup(width, height);
    masker.newLayer();
    masker.newLayer();
    masker.newLayer();
}

void ofApp::updateAnim(){
    for(int i = 0; i < planes.size(); i++) {
        ID = ofToString(i+1);
        alpha = timeline.getValue("layer-" + ID + "-alpha");
        scale = timeline.getValue("layer-" + ID + "-scale");
        position.x = timeline.getValue("layer-" + ID + "-x");
        position.y = timeline.getValue("layer-" + ID + "-y");
        masker.beginLayer(i);
        {
            ofSetColor(ofColor::white);
            planes.at(i)->setTextureScale(scale);
            planes.at(i)->setTexturePosition(position.x, position.y);
            planes.at(i)->draw();
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofBackground(ofColor::black);
            ofSetColor(ofColor::white, alpha);
            ofRect(0, 0, width, height);
        }
        masker.endMask(i);
    }
}

void ofApp::drawAnim() {
    ofBackground(ofColor::black);
    ofSetColor(ofColor::white);
    masker.draw();
    if(ofGetFrameNum() == 48) {
        renderGif();
    }
}
    

Sometimes it doesn't look like much has changed. But the movements in this sketch are based on a series of improvements to ofxTexturePlane, and the integration of ofxTimeline - opening up new possibilities going forward.

Daily sketch