diff options
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/ofApp.cpp | 25 | ||||
| -rw-r--r-- | gui/src/ofApp.h | 1 |
2 files changed, 19 insertions, 7 deletions
diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp index ecea8d8..14e669d 100644 --- a/gui/src/ofApp.cpp +++ b/gui/src/ofApp.cpp @@ -50,9 +50,9 @@ void ofApp::setup(){ gui.add(use_rotate.setup("XF rotate", false)); gui.add(xf_rotate.setup("rotate speed", 0.0, -1.0, 1.0)); gui.add(use_scale.setup("XF scale", false)); - gui.add(xf_scale_speed.setup("scale speed", 0.0, 0.0, 1.0)); - gui.add(xf_scale_min.setup("scale min", 0.0, 0.0, 1.0)); - gui.add(xf_scale_max.setup("scale max", 0.0, 0.0, 1.0)); + gui.add(xf_scale_speed.setup("scale speed", 1.0, 0.0, 10.0)); + gui.add(xf_scale_min.setup("scale min", 1.0, 0.0, 3.0)); + gui.add(xf_scale_max.setup("scale max", 2.0, 0.0, 3.0)); framecounter=0; @@ -417,6 +417,10 @@ void ofApp::drawOutput(ofEventArgs & args){ phase+=1.0f; } + scale_phase+=(interval*xf_scale_speed); + + scale_amt=(((sin(scale_phase)*0.5)+0.5)*(xf_scale_max-xf_scale_min))+xf_scale_min; + switch (source){ case TEST:{ ofMatrix4x4 m = ofMatrix4x4::newIdentityMatrix(); @@ -509,7 +513,7 @@ void ofApp::drawOutput(ofEventArgs & args){ if (use_segmenter){ auto segments=segmenters[s].getSegments(segmenter_number,segmenter_length,phase); for (auto segment=segments.begin();segment!=segments.end();segment++){ - polyOutput.push_back(*segment); + polyOutput.push_back(colourPolyline(*segment,ofColor(laser_R,laser_G,laser_B))); } } else { @@ -523,7 +527,7 @@ void ofApp::drawOutput(ofEventArgs & args){ if (use_segmenter){ auto segments=shape->getSegments(segmenter_number,segmenter_length,phase); for (auto segment=segments.begin();segment!=segments.end();segment++){ - polyOutput.push_back(*segment); + polyOutput.push_back(colourPolyline(*segment,ofColor(laser_R,laser_G,laser_B))); } } else { @@ -541,7 +545,12 @@ void ofApp::drawOutput(ofEventArgs & args){ if (use_rotate||use_scale){ ofMatrix4x4 rm = ofMatrix4x4::newIdentityMatrix(); rm.translate(-outputWindowSize.x/2,-outputWindowSize.y/2,0); - rm.rotateRad(rotate_amt,0,0,1); + if (use_rotate){ + rm.rotateRad(rotate_amt,0,0,1); + } + if (use_scale){ + rm.scale(scale_amt,scale_amt,scale_amt); + } rm.translate(outputWindowSize.x/2,outputWindowSize.y/2,0); for (auto& shape:polyOutput){ transformedOutput.push_back(lineTransformer::polyLineTransform(rm,shape)); @@ -909,13 +918,15 @@ void ofApp::newMidiMessage(ofxMidiMessage& msg) { if (msg.channel==1&&msg.control==1+offset){ //pot - xf_scale_speed=(((float)msg.value)/128.0f); + xf_scale_speed=(((float)msg.value)/128.0f)*10.0f; } if (msg.channel==1&&msg.control==33+offset){ //pot button + use_scale=use_scale?false:true; } if (msg.channel==1&&msg.control==65+offset){ //top button + scale_phase=ofRandom(5.0f); } if (msg.channel==1&&msg.control==73+offset){ //bottom button diff --git a/gui/src/ofApp.h b/gui/src/ofApp.h index ed4def5..d0f334f 100644 --- a/gui/src/ofApp.h +++ b/gui/src/ofApp.h @@ -138,6 +138,7 @@ class ofApp: public ofBaseApp, public ofxMidiListener { int framecounter; float phase,prev_time; //to calculate phase float rotate_amt; + float scale_phase,scale_amt; //======================================= //Mask clipping |
