From ed6e962b7850064a49fd7ce6dd9302127dd153e4 Mon Sep 17 00:00:00 2001 From: ramox81 <184937705+ramox81@users.noreply.github.com> Date: Fri, 11 Sep 2026 12:33:49 +0300 Subject: [PATCH] Compact redundant polynomial knots after order elevation --- src/modules/draw/modify/splinedit.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/draw/modify/splinedit.rs b/src/modules/draw/modify/splinedit.rs index b4ca5387f..7f164aec7 100644 --- a/src/modules/draw/modify/splinedit.rs +++ b/src/modules/draw/modify/splinedit.rs @@ -113,7 +113,8 @@ impl SplineditCommand { source.control_points.iter().map(|point| [point.x, point.y, point.z]).collect(), source.knots.clone(), weights)? .with_periodicity(source.flags.closed || source.flags.periodic) - .elevated(degree - current)?; + .elevated(degree - current)? + .compact_knots(source.control_tolerance.max(1e-9))?; let mut result = source.clone(); result.degree = curve.degree() as i32; result.control_points = curve.control_points().iter().map(|point| Vector3::new(point[0], point[1], point[2])).collect();