From 4c12e758b280388426ca8070b80028031d75d054 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 20 Apr 2023 20:16:54 +0100 Subject: WIP clipping --- nextus/src/lineClipper.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 nextus/src/lineClipper.cpp (limited to 'nextus/src/lineClipper.cpp') 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 lineClipper::mask( + vector shapes, + vector mask, + bool invert + ) +{ + vector output; + + ofx::Clipper clipper; + + for (auto& shape: shapes) + { + clipper.Clear(); + clipper.addPolylines(mask, ClipperLib::ptClip); + vector polys; //TODO make clipper clip colourpolylines + shapes.push_back(shape); + clipper.addPolylines(polys,ClipperLib::ptSubject); + vector 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 -- cgit v1.2.3