From fa8fd80b285e8b916afa5b0424bcd00e579c0771 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 21 Jan 2018 12:39:07 +0000 Subject: outlining partially working --- drawing/src/ofApp.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- drawing/src/ofApp.h | 3 ++ 2 files changed, 82 insertions(+), 8 deletions(-) diff --git a/drawing/src/ofApp.cpp b/drawing/src/ofApp.cpp index 70a9f00..91daee1 100644 --- a/drawing/src/ofApp.cpp +++ b/drawing/src/ofApp.cpp @@ -8,21 +8,21 @@ vector cmdnames={"moveTo","lineTo","curveTo","bezierTo","quadBezier void ofApp::setup(){ ofxSVG svg; svg.load("bars.svg"); - vector paths= svg.getPaths(); + imagepaths= svg.getPaths(); - for (int i=0;i outlines= paths[i].getOutline(); + for (int i=0;i outlines= imagepaths[i].getOutline(); for (int j=0;j clipped = clipper.getOffsets(maskpaths,((sin(ofGetElapsedTimef())+1)*5)+1,true); + for (auto& clip: clipped) + { + clip.draw(); + segmentsdrawn++; + pointsdrawn+=clip.size(); + } + break; + } + case 5:{ + vector clipped = clipper.getOffsets(maskpaths,(phase*20)+1,true); + + vector simplified = clipper.simplifyPolylines(clipped); + + ofSetColor(255*(1.0f-phase),255*(1.0f-phase),255*(1.0f-phase)); + + for (auto& clip: simplified) + { + + clip.draw(); + segmentsdrawn++; + pointsdrawn+=clip.size(); + } + + float phase1=fmod(phase+0.5f,1.0f); + + clipped.clear(); + + clipped = clipper.getOffsets(maskpaths,(phase1*20)+1,true); + + simplified.clear(); + + simplified = clipper.simplifyPolylines(clipped); + + ofSetColor(255*(1.0f-phase1),255*(1.0f-phase1),255*(1.0f-phase1)); + + for (auto& clip: simplified) + { + + clip.draw(); + segmentsdrawn++; + pointsdrawn+=clip.size(); + } + + + break; + } + case 6:{ + + vector shapes; + for (auto& shape: mask) + { + shape.close(); + shapes.push_back(shape); + } + vector clipped = clipper.getOffsets(shapes,((sin(ofGetElapsedTimef())+1)*5)+1); + + + vector simplified = clipper.simplifyPolylines(clipped); + + for (auto& clip: simplified) + { + clip.draw(); + segmentsdrawn++; + pointsdrawn+=clip.size(); + } + + + break; + } + case 7:{ int w=ofRandom(1000); segmenters[w%segmenters.size()].draw(); segmentsdrawn=1; @@ -213,7 +284,7 @@ void ofApp::keyReleased(int key){ break; } case 'p':{ - mode=(mode+1)%4; + mode=(mode+1)%8; break; } } diff --git a/drawing/src/ofApp.h b/drawing/src/ofApp.h index c63533a..4e8dc69 100644 --- a/drawing/src/ofApp.h +++ b/drawing/src/ofApp.h @@ -42,6 +42,9 @@ class ofApp : public ofBaseApp{ int mode; + vector imagepaths; + vector maskpaths; + ofx::Clipper clipper; ofxSyphonServer mainOutputSyphonServer; -- cgit v1.2.3