Expand description
Curve/point containment by per-axis fat line clipping — the derivation
is in curve.md next to this file; this module implements its Clip B
(“fat line”) together with the iteration of its section 5.
Same contract as super::curve_bisect::curve_could_contain (a sound
enclosure of every parameter at which the curve could pass through the
point, None when it definitely doesn’t), but instead of only asking
“could this segment’s hull contain the point?” and bisecting, every
segment is clipped: each Cartesian axis k yields a scalar spline
g_k(t) = X_k(t) - p_k W(t) whose zeros are exactly the parameters where
that coordinate matches, and a fat line around its graph’s control
polygon bounds those zeros to an interval. Intersecting the axes’
intervals shrinks the segment directly towards the solution, so a
transversal hit converges in a handful of clips instead of one
bisection per bit of precision.
Functions§
- curve_
could_ contain - Fat-line-clipping counterpart of
super::curve_bisect::curve_could_contain, with the same tunables: the [Scalar::union] of every converged segment’s clipped parameter interval, exploring breadth-first up tomax_nodessegments.Noneonly when every part of the domain was rejected: unlikecurve_bisect, running out of budget is never read as “not contained” (nor as “contained”) — it is an error, since the search is incomplete (seesurface.md§5).