VPCLIP arc options, visible linked clip boundaries, XCLIP depth rejection

- VPCLIP arc mode takes Angle, CEnter, Direction, Radius and Second pt with
  the reference prompts, and CLose closes with a tangent arc; the arc math
  is shared with PLINE.
- Viewport clip boundaries from MVIEW and VPCLIP stay visible; picking or
  erasing a boundary takes its viewport along.
- XCLIP Clipdepth: a rejected front plane keeps the old front plane and
  clears the back plane.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-09-25 12:22:44 +03:00
1 parent bd17e7e0d4
commit 2e397aec99
5 files changed
+329 -163

No files matched your search

+13
View File
@@ -121,6 +121,19 @@ impl Scene {
handles: &[Handle],
) -> Vec<Handle> {
let mut expanded = self.expanded_with_leaders(handles);
// A viewport's clip boundary goes with its viewport: picking the
// boundary selects both, erasing it erases the viewport.
let viewports: Vec<Handle> = expanded
.iter()
.filter_map(|h| self.document.get_entity(*h).map(|e| (*h, e)))
.flat_map(|(h, e)| {
e.common().reactors.iter().copied().filter(move |r| {
matches!(self.document.get_entity(*r),
Some(EntityType::Viewport(vp)) if vp.clip_boundary_handle == h)
})
})
.collect();
expanded.extend(viewports);
expanded.sort_unstable_by_key(|handle| handle.value());
expanded.dedup();
expanded