mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-01 22:28:49 -04:00
Offsetting entity by entity leaves spikes and inverted loops wherever a feature is narrower than the spacing, and RemoveSelfIntersections only catches proper crossings. ClipperBridge flattens a ShapeProfile into one region (perimeter positive, cutouts negative) and inflates it in a single Clipper pass with round joins, so narrow features collapse and holes that close up disappear. Conservative mode circumscribes perimeter arcs, inscribes cutout arcs and pads the inflation by the chord tolerance, so the result never under-estimates the spacing. It replaces the circumscribed-polygon guarantee the BestFit/PartBoundary callers rely on. Clipper stays confined to CPU preparation whose output is cached; the per-pair Collision path remains hand-rolled for GPU portability. LayoutPart's display offset now goes through the bridge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>