Skip to main content

Module contact

Module contact 

Source
Expand description

Tangential contact: two surfaces that touch along a curve without crossing it.

Where two surfaces cross, the curve they share runs along the cross product of their normals, and the crossing walker in crate::march follows that. Where they touch, the normals are parallel all along the curve, the cross product vanishes, and the crossing walker stalls in fragments. The contact is still a curve, with a description of its own: the locus where the two surfaces meet with parallel normals. This module follows that locus.

§Prediction

At a contact the two surfaces share a tangent plane, and along the contact their normal curvatures agree: both are the normal curvature of the one curve they share. The contact therefore runs along the null direction of the difference of the two second fundamental forms, taken in the common tangent plane. Where that difference has no distinguished null direction (both its eigenvalues of one size), the surfaces touch at an isolated point or osculate in every direction, and there is no curve to predict along.

§Correction

A Newton step on four conditions in the four parameters: the second surface’s point lies on the first surface’s normal line through its own point (two conditions), the two normals agree across the contact (one condition; their disagreement along the contact is the null direction’s and carries no information), and the point lies one step ahead along the prediction. The gap along the normal is not a condition: at a contact it touches zero without crossing it, so it has no root a Newton step could find. It is measured instead, and a corrected point whose gap exceeds the acceptance is where the surfaces part, so the trace stops there.

Functions§

trace_tangential
Trace the tangential contact of two surfaces through a seed.