From 7f2fb4dc45faa9d87906b9e1006be851a5549534 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 18 Jan 2018 23:39:41 +0000 Subject: ofxClipper --- drawing/addons.make | 1 + drawing/bin/data/haring.svg | 1551 +++++++++++++++++++++++++++++++++++++++-- drawing/bin/data/lorenzo.svg | 98 +-- drawing/src/lineSegmenter.cpp | 4 + drawing/src/lineSegmenter.h | 1 + drawing/src/main.cpp | 4 +- drawing/src/ofApp.cpp | 56 +- drawing/src/ofApp.h | 5 +- 8 files changed, 1597 insertions(+), 123 deletions(-) (limited to 'drawing') diff --git a/drawing/addons.make b/drawing/addons.make index 7f3b8ca..f58784c 100644 --- a/drawing/addons.make +++ b/drawing/addons.make @@ -1,2 +1,3 @@ ofxSvg +ofxClipper ofxSyphon \ No newline at end of file diff --git a/drawing/bin/data/haring.svg b/drawing/bin/data/haring.svg index 0abafe1..e24b701 100644 --- a/drawing/bin/data/haring.svg +++ b/drawing/bin/data/haring.svg @@ -9,53 +9,1520 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="210mm" - height="297mm" - viewBox="0 0 744.09448819 1052.3622047" - id="svg4350" version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="haring.svg"> - - image/svg+xml - - - - image/svg+xml - - - - - - - - - + inkscape:label="LS_PVCBanner_Dublin_NEW" + transform="matrix(1.3333333,0,0,-1.3333333,0,899.99954)"> \ No newline at end of file diff --git a/drawing/bin/data/lorenzo.svg b/drawing/bin/data/lorenzo.svg index 19654bc..f6d9bd5 100644 --- a/drawing/bin/data/lorenzo.svg +++ b/drawing/bin/data/lorenzo.svg @@ -12,28 +12,28 @@ version="1.1" id="svg3718" xml:space="preserve" - width="15125.733" - height="11346.147" - viewBox="0 0 15125.733 11346.147" + width="1200" + height="900" + viewBox="0 0 1200 899.99996" sodipodi:docname="lorenzo.svg" - inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">image/svg+xml \ No newline at end of file + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.07932836;stroke-opacity:1" + d="m 808.65927,172.45016 c 0,-4.6135 0.6365,-8.0726 1.9213,-10.3797 1.2797,-2.3061 3.7123,-3.4591 7.3037,-3.4591 5.892,0 8.8414,4.6131 8.8414,13.8388 l 0,329.5693 c 0,9.2256 -2.9494,13.8382 -8.8414,13.8382 -3.5914,0 -6.024,-1.0927 -7.3037,-3.2667 -1.2848,-2.1806 -1.9213,-5.7061 -1.9213,-10.5715 z m 62.6558,1.5373 c 0,-7.4358 -0.7078,-14.5472 -2.1134,-21.3344 -1.4118,-6.7928 -4.0364,-12.6848 -7.8807,-17.6822 -3.8437,-4.9967 -9.2257,-8.9734 -16.144,-11.9163 -6.9196,-2.9426 -16.0188,-4.4203 -27.2927,-4.4203 -11.2795,0 -20.4388,1.4777 -27.48479,4.4203 -7.05095,2.9429 -12.49232,6.9196 -16.33665,11.9163 -3.84369,4.9974 -6.47462,10.8894 -7.87952,17.6822 -1.41181,6.7872 -2.11466,13.8986 -2.11466,21.3344 l 0,326.879 c 0,7.4295 0.70285,14.5406 2.11466,21.3344 1.4049,6.7862 4.03583,12.6847 7.87952,17.6815 3.84433,4.9977 9.2857,8.9678 16.33665,11.9169 7.04599,2.9429 16.20529,4.4198 27.48479,4.4198 11.2739,0 20.3731,-1.4769 27.2927,-4.4198 6.9183,-2.9491 12.3003,-6.9192 16.144,-11.9169 3.8443,-4.9968 6.4689,-10.8953 7.8807,-17.6815 1.4056,-6.7938 2.1134,-13.9049 2.1134,-21.3344 z m -281.63427,382.2316 0,-237.84871 -32.44094,237.84871 -44.59063,0 0,-437.45188 44.59063,0 0,212.45 32.39445,-212.45 0.0465,0.0114 0,-0.0114 44.59,0 0,437.45188 z m 160.93804,0 0,-40.3614 -59.19696,-356.72908 59.19696,0 0,-40.3614 -106.86212,0 0,35.36403 60.35032,361.72645 -56.12172,0 0,40.3614 z m -346.98844,0 96.48375,0 0,-40.3614 -51.89375,0 0,-158.77912 49.97186,0 0,-40.36235 -49.97186,0 0,-157.58761 51.89375,0 0,-40.3614 -96.48375,0 z m -83.798,-437.45188 -44.59063,0 0,437.45188 53.81628,0 c 11.27264,0 20.37311,-1.47685 27.29142,-4.42033 6.91957,-2.94943 12.30145,-6.91958 16.14459,-11.91631 3.8437,-4.99737 6.46899,-10.89528 7.88072,-17.68253 1.40562,-6.79273 2.11402,-13.90476 2.11402,-21.33402 l 0,-109.1394 c 0,-6.15041 -0.25782,-11.14722 -0.76909,-14.99179 -0.51627,-3.84378 -1.47749,-7.05062 -2.88311,-9.60992 -1.41054,-2.56484 -3.26674,-4.67854 -5.57345,-6.34254 -2.30608,-1.66962 -5.12906,-3.14092 -8.45712,-4.42041 3.32806,-1.79544 6.15104,-3.59143 8.45712,-5.38132 2.30671,-1.79599 4.16291,-3.97665 5.57345,-6.53499 1.40562,-2.56484 2.36684,-5.70569 2.88311,-9.41715 0.51127,-3.7182 0.76909,-8.3973 0.76909,-14.03152 l 0,-202.22965 -44.59063,0 0,203.38364 c 0,8.45593 -2.56389,13.06903 -7.68676,13.83788 l -10.37901,0 z m 0,257.58323 9.22565,0 c 5.89196,0 8.84012,4.61311 8.84012,13.83876 l 0,111.83038 c 0,9.22501 -2.94816,13.83812 -8.84012,13.83812 l -9.22565,0 z M 254.10204,173.98747 c 0,-7.43576 -0.70841,-14.54715 -2.11395,-21.33433 -1.4118,-6.79281 -4.03583,-12.68484 -7.88079,-17.68221 -3.8437,-4.99674 -9.22565,-8.97339 -16.14396,-11.91631 -6.91957,-2.94261 -16.01878,-4.42033 -27.29268,-4.42033 -11.27947,0 -20.4388,1.47772 -27.48419,4.42033 -7.05094,2.94292 -12.49294,6.91957 -16.33664,11.91631 -3.84433,4.99737 -6.47518,10.8894 -7.88016,17.68221 -1.41181,6.78718 -2.11466,13.89857 -2.11466,21.33433 l 0,326.87902 c 0,7.42957 0.70285,14.54065 2.11466,21.33441 1.40498,6.78622 4.03583,12.68476 7.88016,17.68149 3.8437,4.99769 9.2857,8.96784 16.33664,11.91695 7.04539,2.94284 16.20472,4.41978 27.48419,4.41978 11.2739,0 20.37311,-1.47694 27.29268,-4.41978 6.91831,-2.94911 12.30026,-6.91926 16.14396,-11.91695 3.84496,-4.99673 6.46899,-10.89527 7.88079,-17.68149 1.40554,-6.79376 2.11395,-13.90484 2.11395,-21.33441 z m -62.6564,-1.5373 c 0,-4.61342 0.63653,-8.07261 1.92189,-10.37964 1.27917,-2.30608 3.71169,-3.45911 7.30313,-3.45911 5.89203,0 8.84201,4.6131 8.84201,13.83875 l 0,329.56935 c 0,9.22565 -2.94998,13.8382 -8.84201,13.8382 -3.59144,0 -6.02396,-1.09267 -7.30313,-3.26674 -1.28536,-2.18058 -1.92189,-5.70609 -1.92189,-10.57146 z m -159.138872,383.76889 44.59063,0 0,-397.09048 56.506542,0 0,-40.3614 -101.097172,0 z m 846.977702,-489.5595 -854.946552,0 0,44.59 854.946552,0 z m 0,497.0767 -854.946552,0 0,44.5904 854.946552,0 z" /> \ No newline at end of file diff --git a/drawing/src/lineSegmenter.cpp b/drawing/src/lineSegmenter.cpp index 47a9d62..7e0af7a 100644 --- a/drawing/src/lineSegmenter.cpp +++ b/drawing/src/lineSegmenter.cpp @@ -58,6 +58,10 @@ void lineSegmenter::draw(){ line.draw(); return; } +int lineSegmenter::size(){ + return line.size(); +} + /* diff --git a/drawing/src/lineSegmenter.h b/drawing/src/lineSegmenter.h index 25f3d55..5b2aab3 100644 --- a/drawing/src/lineSegmenter.h +++ b/drawing/src/lineSegmenter.h @@ -12,6 +12,7 @@ class lineSegmenter{ } const vector &getSegments(int num,float coverage, float phase); void draw(); + int size(); private: ofPolyline line; vector segments; diff --git a/drawing/src/main.cpp b/drawing/src/main.cpp index f9ba23c..50ef9f2 100644 --- a/drawing/src/main.cpp +++ b/drawing/src/main.cpp @@ -9,8 +9,8 @@ int main(int argc, char *argv[]){ ofGLFWWindowSettings settings; - settings.width = 600; - settings.height = 800; + settings.width = 1200; + settings.height = 900; shared_ptr mainWindow = ofCreateWindow(settings); 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: "< segmenters; + vector mask; int numsegments; float coverage; int mode; + ofx::Clipper clipper; + ofxSyphonServer mainOutputSyphonServer; }; -- cgit v1.2.3