pub fn trace_tangential(
a: &SurfaceGeometry,
b: &SurfaceGeometry,
from: Contact,
options: Marching,
tol: Tolerances,
) -> OgeomResult<Traced>Expand description
Trace tangential contact along a curve: the walker an earlier plan owed, following the valley of the gap function rather than a crossing.
Where two surfaces touch along a whole curve there is no transversal direction to march: the crossing angle is zero along the entire contact, and the crossing walker honestly stalls. But the contact is still a curve, and it is the locus where the gap between the surfaces stays zero. This walker steps along the contact and corrects each step transversally: project the candidate onto the first surface, project that onto the second, and slide on the first surface to close the gap: a minimization, not a root-find, because at tangency the gap touches zero without crossing it.
The seed must be a genuine contact: on both surfaces within tolerance and near-tangent there. A transversal crossing is refused; the ordinary walker owns those.
ยงErrors
OgeomError::Construction if the
settings are unusable or the seed is not a tangential contact.