diff options
Diffstat (limited to 'gistanalysis/src/ofApp.h')
| -rw-r--r-- | gistanalysis/src/ofApp.h | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/gistanalysis/src/ofApp.h b/gistanalysis/src/ofApp.h index eca2a91..59bbfe6 100644 --- a/gistanalysis/src/ofApp.h +++ b/gistanalysis/src/ofApp.h @@ -35,7 +35,7 @@ public: void set_joined(bool _joined){ joined=_joined; } - const vector <colourPolyline> &output(const ofMatrix4x4 xform=ofMatrix4x4(1.0f,0.0f,0.0f,0.0f, + vector <colourPolyline> output(const ofMatrix4x4 xform=ofMatrix4x4(1.0f,0.0f,0.0f,0.0f, 0.0f,1.0f,0.0f,0.0f, 0.0f,0.0f,1.0f,0.0f, 0.0f,0.0f,0.0f,1.0f), @@ -44,27 +44,42 @@ public: //destructive or non? float fadefactor=decay<0.0f?1.0f-(1.0f/history_size):decay; + vector <colourPolyline> outdata; + for (int i=0;i<data.size();i++){ - data[i]=lineTransformer::polyLineTransform(xform,data[i],fadefactor); + vector <colourPolyline> newdata; + for (int j=0;j<data[i].size();j++){ + colourPolyline line=lineTransformer::polyLineTransform(xform,data[i][j],fadefactor); + newdata.push_back(line); + outdata.push_back(line); + } + data[i]=newdata; } - - return data; + return outdata; } void addpoints(vector <float> &audio,int number){ - colourPolyline newdata; int num=min(number,(int)audio.size()); int step=audio.size()/(num+1); - for (int i=0;i<num;i++){ - newdata.addVertex(((step*(i+1))*ofGetWidth())/audio.size(),audio[step*(i+1)]*ofGetHeight(),colour); - if (!joined){ - newdata.addVertex((((step*(i+1))*ofGetWidth())/audio.size())+5,(audio[step*(i+1)])*ofGetHeight(),0,0,0); + vector <colourPolyline> newdata; + if (joined){ + colourPolyline line; + for (int i=0;i<num;i++){ + line.addVertex(((step*(i+1))*ofGetWidth())/audio.size(),audio[step*(i+1)]*ofGetHeight(),colour); + } + newdata.push_back(line); + } + else{ + for (int i=0;i<num;i++){ + colourPolyline line; + line.addVertex(((step*(i+1))*ofGetWidth())/audio.size(),audio[step*(i+1)]*ofGetHeight(),colour); + line.addVertex(((step*(i+1))*ofGetWidth())/audio.size()+2,audio[step*(i+1)]*ofGetHeight(),colour); + newdata.push_back(line); } } data.insert(data.begin(),newdata); while (data.size()>history_size) { data.pop_back(); } - } int numpoints(){ int num=0; @@ -74,7 +89,7 @@ public: return num; } private: - vector <colourPolyline> data; + vector < vector<colourPolyline>> data; bool joined; int history_size; ofColor colour; @@ -157,6 +172,7 @@ class ofApp : public ofBaseApp, public ofxMidiListener{ ofxPanel gui; + ofParameter<bool> joined; ofParameter<int> numPlots; ofParameter<float> scalePlot; ofParameter<float> decayPlot; |
