diff options
Diffstat (limited to 'drawing/src')
| -rw-r--r-- | drawing/src/lineSegmenter.cpp | 15 | ||||
| -rw-r--r-- | drawing/src/lineSegmenter.h | 14 | ||||
| -rw-r--r-- | drawing/src/main.cpp | 22 | ||||
| -rw-r--r-- | drawing/src/ofApp.cpp | 128 | ||||
| -rw-r--r-- | drawing/src/ofApp.h | 35 |
5 files changed, 214 insertions, 0 deletions
diff --git a/drawing/src/lineSegmenter.cpp b/drawing/src/lineSegmenter.cpp new file mode 100644 index 0000000..f848272 --- /dev/null +++ b/drawing/src/lineSegmenter.cpp @@ -0,0 +1,15 @@ +#include "lineSegmenter.h" + +const vector <ofPolyline> & lineSegmenter::getSegments(int num,float coverage, float phase) const{ + segments.clear(); + + float spacing=1.0f/num; + + for (int i=0;i<num;i++){ + float endIndex=line.getIndexAtPercent(phase+(i*spacing)); + } + + float endlength=line.getIndex + + return segments; +}
\ No newline at end of file diff --git a/drawing/src/lineSegmenter.h b/drawing/src/lineSegmenter.h new file mode 100644 index 0000000..15797a1 --- /dev/null +++ b/drawing/src/lineSegmenter.h @@ -0,0 +1,14 @@ +#pragma once + +#include "ofMain.h" + +class lineSegmenter{ + public: + lineSegmenter(ofPolyline &_line){ + line=_line; + } + const vector <ofPolyline> &getSegments(int num,float coverage, float phase) const; + private: + ofPolyline line; + vector <ofPolyline> segments; +};
\ No newline at end of file diff --git a/drawing/src/main.cpp b/drawing/src/main.cpp new file mode 100644 index 0000000..0d7049c --- /dev/null +++ b/drawing/src/main.cpp @@ -0,0 +1,22 @@ +#include "ofMain.h" +#include "ofApp.h" + + +//======================================================================== +int main(int argc, char *argv[]){ + + + ofGLFWWindowSettings settings; + + + settings.width = 800; + settings.height = 800; + + shared_ptr<ofAppBaseWindow> mainWindow = ofCreateWindow(settings); + + shared_ptr<ofApp> mainApp(new ofApp); + + ofRunApp(mainWindow, mainApp); + ofRunMainLoop(); +} +
\ No newline at end of file diff --git a/drawing/src/ofApp.cpp b/drawing/src/ofApp.cpp new file mode 100644 index 0000000..f4a00b5 --- /dev/null +++ b/drawing/src/ofApp.cpp @@ -0,0 +1,128 @@ +#include "ofApp.h" +#include "glew.h" + + +//-------------------------------------------------------------- +void ofApp::setup(){ + ofxSVG svg; + svg.load("shapes.svg"); + vector <ofPath> paths= svg.getPaths(); + + for (int i=0;i<paths.size();i++){ + + paths[i].setMode(ofPath::COMMANDS); + + vector <ofPolyline> outlines= paths[i].getOutline(); + + for (int j=0;j<outlines.size();j++){ + segments.push_back(lineSegmenter(outlines[j])); + } + + } + + cout << "Found " << segments.size() << " segments"; + + ofSetFrameRate(30); +} + +//-------------------------------------------------------------- +void ofApp::update(){ + + + +} + + + +//-------------------------------------------------------------- +void ofApp::draw(){ + ofBackground(0,0,0); + ofSetColor(255,255,255); + + glTranslatef(128,128,0); + + + + + + + + //svg.draw(); + + std::stringstream strm; + strm << "segments: "<<segments.size(); + ofSetWindowTitle(strm.str()); + +} + + +//-------------------------------------------------------------- +void ofApp::exit() { + +} + + + +//-------------------------------------------------------------- +void ofApp::keyPressed(ofKeyEventArgs &args){ + + + +} + + + +//-------------------------------------------------------------- +void ofApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void ofApp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void ofApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void ofApp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void ofApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void ofApp::mouseEntered(int x, int y){ + +} + +//-------------------------------------------------------------- +void ofApp::mouseExited(int x, int y){ + +} + +//-------------------------------------------------------------- +void ofApp::windowResized(int w, int h){ + +} + +void ofApp::outputWindowResized(ofResizeEventArgs &resizeargs){ + +} + +//-------------------------------------------------------------- +void ofApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void ofApp::dragEvent(ofDragInfo dragInfo){ + + +} diff --git a/drawing/src/ofApp.h b/drawing/src/ofApp.h new file mode 100644 index 0000000..05d4441 --- /dev/null +++ b/drawing/src/ofApp.h @@ -0,0 +1,35 @@ +#pragma once + +#include "ofMain.h" +#include "ofxSvg.h" +#include "lineSegmenter.h" + + +class ofApp : public ofBaseApp{ + + public: + void setup(); + void update(); + void updateOutput(ofEventArgs & args); + void draw(); + void drawOutput(ofEventArgs & args); + void exit(); + + void outputKeyPressed(ofKeyEventArgs & args); + + void keyPressed(ofKeyEventArgs &keyargs); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void mouseEntered(int x, int y); + void mouseExited(int x, int y); + void windowResized(int w, int h); + void outputWindowResized(ofResizeEventArgs &resizeargs); + void dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + vector <lineSegmenter> segments; + +}; |
