Improve spline fit and control vertex grips

This commit is contained in:
ramox81 committed 2026-08-19 11:02:32 +03:00
1 parent 97a6322e2a
commit 0d37d3ff78
13 files changed
+471 -80

No files matched your search

+18
View File
@@ -495,6 +495,23 @@ impl OpenCADStudio {
} else {
vec![]
};
let control_polygon = tab.selected_handle.and_then(|handle| {
let spline = match tab.scene.document.get_entity(handle) {
Some(acadrust::EntityType::Spline(spline)) if spline.cv_frame_visible => spline,
_ => return None,
};
let points: Vec<_> = grips
.iter()
.filter(|grip| {
grip.shape == crate::scene::model::object::GripShape::Circle
})
.map(|grip| grip.pos)
.collect();
(points.len() >= 2).then_some((
points,
spline.flags.closed || spline.flags.periodic,
))
});
let grip_clip = if grips.is_empty() {
None
} else {
@@ -688,6 +705,7 @@ impl OpenCADStudio {
snap_ext_base,
snap_ext_base2,
grips,
control_polygon,
grip_clip,
ucs_icons,
ost_points,