Function spline_pair_intersection

pub fn spline_pair_intersection(
    first: &BSplineSurface,
    second: &BSplineSurface,
    windows: Option<((DVec2, DVec2), (DVec2, DVec2))>,
) -> Result<Vec<PairSection3>, ExactIntersectionRefusal>
Expand description

Every component of the section of two B-spline surfaces within windows of their parameters (their whole domains when None), each a PairSection3 whose first surface is first (ADR 0077).

Every component is found: the search splits Bezier sub-patch pairs until their normal cones are apart, where no closed loop can hide, and seeds from every crossing of a sub-patch edge.

ยงErrors

  • UnsupportedPair: an unclamped or malformed surface, or the search ran out of budget.
  • NotRegularCurve: the surfaces touch, or come closer than the search resolves.
  • Disjoint: no section in the windows.