diff options
| author | Tim Redfern <tim@getdrop.com> | 2022-11-06 01:19:44 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2022-11-06 01:19:44 +0000 |
| commit | af28dee8c32670db6a9eaf19793678a119cf1dd4 (patch) | |
| tree | ae3c723e863aeda9532bedd1bd8e9c31e9b85cd6 /pluginchooser | |
| parent | c5dab1b73a4861dd3d557888908eaff16d388442 (diff) | |
| parent | 6d2306c1200db53de92bd5af73b62b5049d02b56 (diff) | |
not quite right
Diffstat (limited to 'pluginchooser')
| -rw-r--r-- | pluginchooser/src/ofApp.cpp | 52 | ||||
| -rw-r--r-- | pluginchooser/src/pluginpanel.h | 29 |
2 files changed, 64 insertions, 17 deletions
diff --git a/pluginchooser/src/ofApp.cpp b/pluginchooser/src/ofApp.cpp index 4c98ea7..511b7c6 100644 --- a/pluginchooser/src/ofApp.cpp +++ b/pluginchooser/src/ofApp.cpp @@ -13,8 +13,40 @@ void ofApp::setup(){ } +#define STEPS_X 8 +#define STEPS_Y 6 +#define NUM_FRAMES 10 + void ofApp::update(){ plugingui.update(); + + //seed the pipeline of drawing for the chaos algorithm +/* + n-> delete + n-1 -> chaos -> n + n-2 -> chaos -> n-1 + + . . . + + 1 -> chaos -> 2 + new frame -> chaos -> 1 +*/ + + vector<colourPolyline> frame; + for (int i=ofGetWidth()/STEPS_X;i<ofGetWidth();i+=ofGetWidth()/STEPS_X){ + for (int j=ofGetHeight()/STEPS_Y;j<ofGetHeight();j+=ofGetHeight()/STEPS_Y){ + colourPolyline poly; + poly.addVertex(i,j,ofColor(255,255,255)); + poly.addVertex(i+1,j,ofColor(255,255,255)); + frame.push_back(poly); + } + } + + drawing.push_front(frame); + if (drawing.size()>NUM_FRAMES){ + drawing.pop_back(); + } + } void ofApp::draw(){ @@ -27,17 +59,19 @@ void ofApp::draw(){ testsettings.draw(); - //seed the pipeline of drawing for the chaos algorithm -/* - n-> delete - n-1 -> chaos -> n - n-2 -> chaos -> n-1 + glLineWidth(2); - . . . + for (auto i=drawing.begin();i!=drawing.end();i++){ + for (auto j=i->begin();j!=i->end();j++){ + for (int k=0;k<j->size();k++){ + (*j)[k]=plugingui.calc((*j)[k]); + } + j->draw(); + } + } + + ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+" fps"); - 1 -> chaos -> 2 - new frame -> chaos -> 1 -*/ } void ofApp::exit() { diff --git a/pluginchooser/src/pluginpanel.h b/pluginchooser/src/pluginpanel.h index fef4785..fd20d0d 100644 --- a/pluginchooser/src/pluginpanel.h +++ b/pluginchooser/src/pluginpanel.h @@ -21,6 +21,7 @@ public: input_index=_input_index; params=_params; iv.resize(_params.size()+_dimension); + plugin->setup (); } string name; AChaosBase *plugin; @@ -35,13 +36,13 @@ public: params[i].val=_params[i]; } } - ofVec2f calc(ofVec2f point){ - iv[input_index]=point.x; - iv[input_index+1]=point.y; + ofVec3f calc(ofVec3f point){ + iv[input_index]=point.x-(ofGetWidth()/2); + iv[input_index+1]=point.y-(ofGetHeight()/2); plugin->set(iv); plugin->calc(); vector<REAL> ov=plugin->getVec(); - return ofVec2f(ov[0],ov[1]); + return ofVec3f(ov[0]+(ofGetWidth()/2),ov[1]+(ofGetHeight()/2),0); } }; @@ -82,6 +83,15 @@ class pluginPanel : public ofxPanel { {"a",1.4f,-0.0f,2.0f}, {"b",0.3f,-1.0f,1.0f} } + ), + loader("ikeda",&ikeda, //4,2 a b nx ny perfect + 2,0, + { + {"a",0.85f,0.0f,2.0f}, + {"b",0.9f,0.0f,2.0f}, + {"k",0.4f,0.0f,2.0f}, + {"p",7.7f,0.0f,10.0f} + } ) }; index=0; @@ -142,7 +152,7 @@ class pluginPanel : public ofxPanel { clear(); add(label.setup(plugins[index].name)); add(active.set("use",false)); - add(amount.set("amount", 0.0f, 0.0f, 1.0f)); + add(amount.set("amount", 0.0f, -0.1f, 0.1f)); params.clear(); for (int i=0;i<plugins[index].params.size();i++){ ofParameter<float> param; @@ -157,10 +167,12 @@ class pluginPanel : public ofxPanel { } } void update(){ - //push params to plugin - plugins[index].update(params); + + //push params to plugin + plugins[index].update(params); + } - ofVec2f calc(ofVec2f point){ + ofVec3f calc(ofVec3f point){ if (active){ return (plugins[index].calc(point)*amount)+(point*(1.0f-amount)); } @@ -176,4 +188,5 @@ private: vector<ofParameter<float> > params; AChaosClifford clifford; AChaosHenon henon; + AChaosIkeda ikeda; };
\ No newline at end of file |
