From b8754720215c78b3f5f209876704f0707129e320 Mon Sep 17 00:00:00 2001 From: Elena Torro Date: Thu, 9 Apr 2026 11:46:35 +0200 Subject: [PATCH] :bug: Clamp bezier intersection parameters to [0,1] --- render-wasm/src/math/bools.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/render-wasm/src/math/bools.rs b/render-wasm/src/math/bools.rs index 0215e50dca..ef9748f673 100644 --- a/render-wasm/src/math/bools.rs +++ b/render-wasm/src/math/bools.rs @@ -83,7 +83,7 @@ pub fn split_intersections(segment: Bezier, intersections: &[f64]) -> Vec (Vec, Vec ); intersects_b[j].extend(intersections_a.iter().map(|t_a| { - segment_b.project( - segment_a.evaluate(TValue::Parametric(*t_a)), - Some(PROJECT_OPTS), - ) + segment_b + .project( + segment_a.evaluate(TValue::Parametric(t_a.clamp(0.0, 1.0))), + Some(PROJECT_OPTS), + ) + .clamp(0.0, 1.0) })); - intersects_a[i].extend(intersections_a); + intersects_a[i].extend(intersections_a.iter().map(|t| t.clamp(0.0, 1.0))); } }