diff options
Diffstat (limited to 'nextus/src/lineClipper.cpp')
| -rw-r--r-- | nextus/src/lineClipper.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/nextus/src/lineClipper.cpp b/nextus/src/lineClipper.cpp new file mode 100644 index 0000000..bbfa9eb --- /dev/null +++ b/nextus/src/lineClipper.cpp @@ -0,0 +1,33 @@ +#include "lineClipper.h" + +vector <colourPolyline> lineClipper::mask( + vector <colourPolyline> shapes, + vector <ofPolyline> mask, + bool invert + ) +{ + vector <colourPolyline> output; + + ofx::Clipper clipper; + + for (auto& shape: shapes) + { + clipper.Clear(); + clipper.addPolylines(mask, ClipperLib::ptClip); + vector <ofPolyline> polys; //TODO make clipper clip colourpolylines + shapes.push_back(shape); + clipper.addPolylines(polys,ClipperLib::ptSubject); + vector <ofPolyline> clipped; + if (invert){ + clipped = clipper.getClipped(ClipperLib::ctDifference); + }else { + clipped = clipper.getClipped(ClipperLib::ctIntersection); + } + for (auto& clip: clipped) + { + //clip.simplify(contour_simplify); + output.push_back(colourPolyline(clip,shape.getColourAt(0))); + } + } + return output; +}
\ No newline at end of file |
