Skip to main content

offset_torus_face

Function offset_torus_face 

Source
pub fn offset_torus_face(
    solid: &BrepSolid,
    face_id: u64,
    distance: f64,
) -> Result<BrepSolid, String>
Expand description

Push a full toroidal face by changing its tube radius exactly.

This first torus slice deliberately accepts only an untrimmed torus whose boundary edges are intrinsic periodic seams (both incidences belong to the pushed face). Boolean-trimmed torus rims need neighbour re-intersection and are refused before mutation. The offset carrier preserves the source knot vectors, weights, and (u,v) parameterization, so existing pcurves remain valid and the two 3D seam curves can be rematerialized as exact iso-curves.

An intrinsic boundary that is NOT an iso line is no longer refused: crate::image_curve builds its 3D image on the offset torus. That lane is unreached by the corpus today — the neighbour-trim gate above rejects every trimmed torus first (refusal census §3.6) — so it is a latent restriction removed, not a measured behaviour change.