feat(modify): EXTRIM — cookie-cutter trim on one side of a boundary (#253)

Run EXTRIM, pick a cutting boundary (line/arc/circle/ellipse/spline/
polyline), then click a side: every object crossing the boundary is
trimmed on that side and objects wholly on it are erased. Side is decided
by a parity crossing count (a segment to the pick point crossing the
boundary an even number of times is on the pick side), reusing the trim
intersection machinery; line boundaries extend to infinity. Line/arc/
circle are trimmed exactly; polyline/ellipse/spline via dense sampling.

Live preview while choosing the side: boundary in yellow, surviving parts
in blue, the removed parts in red.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-07-09 16:26:24 +03:00
commit 694c5b5a7f
3 changed files with 519 additions and 0 deletions

View file

@ -462,6 +462,7 @@ inventory::submit!(crate::command::CommandRegistration {
"EXPORT",
"EXPORTSTEP",
"EXPORTSTL",
"EXTRIM",
"FILETAB",
"FIND",
"FLATTEN",