feat(model): SECTIONCULL erases what lies outside a section

SECTIONCULL keeps only what the selected section object (or the live
section of the space) shows: solids, surfaces and closed meshes are cut
to it with the same planes the live section uses, open meshes are
clipped face by face, and every other object wholly outside it is
erased. Objects across the boundary that cannot be cut stay whole. One
undo step.

The section's bounding planes are gathered once (section_planes) and
shared by the live section and the cull.

Refs #1407

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-13 21:59:25 +03:00
1 parent adbcac8a02
commit d4b4fc37e1
28 files changed
+450 -77

No files matched your search

+4
View File
@@ -895,6 +895,10 @@ common =
.slice-result-commit-failed = SLICE: a result could not be committed; all source objects were retained.
.slice-retained-update-failed = SLICE: a retained result could not be updated.
.slice-created-results = SLICE: created __ocs_arg_count__ result object(s).
.sectioncull-no-section = SECTIONCULL: wybierz obiekt przekroju lub włącz przekrój dynamiczny.
.sectioncull-prepare-failed = SECTIONCULL: nie udało się przygotować przeciętego obiektu; nic nie zmieniono.
.sectioncull-nothing-outside = SECTIONCULL: nic nie leży poza przekrojem.
.sectioncull-result = SECTIONCULL: usunięto __ocs_arg_erased__ obiekt(ów) i przycięto __ocs_arg_cut__ na granicy przekroju.
.splinefit-fit-a-spline-through-n-points = SPLINEFIT: dopasuj splajn przez punkty __ocs_fmt_0__.
.splinefit-need-at-least-3-points =SPLINEFIT: potrzebne są co najmniej 3 punkty.
.splinefit-select-a-polyline-to-fit-a-spline-th = SPLINEFIT: wybierz polilinię, przez którą ma zostać dopasowany splajn.