pub fn refine_crossing<const D: usize, const C: usize>(
curve_a: &NurbCurve<D>,
curve_b: &NurbCurve<D>,
t_a: Scalar,
t_b: Scalar,
) -> (Scalar, Scalar)where
NurbCurve<D>: ParameterRefinable<C>,Expand description
Polish one isolated (t_a, t_b) — as returned by curve_curve_intersect
— by Gauss-Newton on A(t_a) - B(t_b) = 0 (newton::refine).
Two unknowns against C equations, so each step solves the normal
equations (JᵀJ)δ = -JᵀF with J = [A'(t_a), -B'(t_b)]; parallel
tangents make JᵀJ singular, and leave the box as it is. So does a
refined box that provably holds no crossing — see
curve_surface::refine_crossing.