Skip to main content

curve_surface_crossings

Function curve_surface_crossings 

Source
pub fn curve_surface_crossings<S: Scalar>(
    curve: &NurbCurve<S, 4>,
    surface: &NurbSurface<S, 4>,
    max_nodes: usize,
    min_subdivision_size: S,
) -> GeopResult<Vec<(S, Vector2<S>)>>
Expand description

All (t, (u, v)) with curve(t) = surface(u, v), as paired parameter boxes (curve_surface.md), for a curve with no arc lying on the surface — see curve_surface_intersect for the wrapper that handles that. The same search as curve_curve::curve_curve_crossings, over (curve segment, patch) pairs with three parameter directions: AABB and [clip] rejection, convergence once both objects’ extents are within min_subdivision_size ([crate::fat_line::converged]), a pinned parameter handed down one dimension ([solve_pinned]), and otherwise restriction or fair bisection per [crate::fat_line::plan].

Overlapping boxes merge by union into one unresolved cluster, never an average. Exhausting max_nodes is an error — the result would be incomplete.