From 7f2fb4dc45faa9d87906b9e1006be851a5549534 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 18 Jan 2018 23:39:41 +0000 Subject: ofxClipper --- drawing/src/ofApp.cpp | 56 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 15 deletions(-) (limited to 'drawing/src/ofApp.cpp') diff --git a/drawing/src/ofApp.cpp b/drawing/src/ofApp.cpp index 43069d2..e888d4d 100644 --- a/drawing/src/ofApp.cpp +++ b/drawing/src/ofApp.cpp @@ -9,18 +9,24 @@ void ofApp::setup(){ vector paths= svg.getPaths(); for (int i=0;i outlines= paths[i].getOutline(); + for (int j=0;j outlines= paths[i].getOutline(); - for (int j=0;jgetSegments(numsegments,coverage,phase); for (auto segment=segments.begin();segment!=segments.end();segment++){ segment->draw(); - segmentsdrawn++; + segmentsdrawn+=1; + pointsdrawn+=segment->size(); } } + break; } case 1:{ + vector shapes; + for (auto shape=segmenters.begin();shape!=segmenters.end();shape++){ + auto segments=shape->getSegments(numsegments,coverage,phase); + for (auto segment=segments.begin();segment!=segments.end();segment++){ + shapes.push_back(*segment); + } + } + clipper.addPolylines(shapes,ClipperLib::ptSubject); + vector clipped = clipper.getClipped(ClipperLib::ctIntersection); + segmentsdrawn=clipped.size(); + for (auto& clip: clipped) + { + clip.draw(); + pointsdrawn+=clip.size(); + } + } + case 2:{ int w=ofRandom(1000); segmenters[w%segmenters.size()].draw(); + segmentsdrawn=1; + pointsdrawn+=segmenters[w%segmenters.size()].size(); + break; } } std::stringstream strm; - strm << "segments: "<