pub fn chain_wire_branches(
model: &mut Model,
surface: SurfaceId,
wires: &[Shape],
tol: Tolerances,
) -> OgeomResult<()>Expand description
Put a face’s wires on one branch of a periodic chart.
An exchange file’s pcurves, or a fit of them, answer with whatever
phase the inversion likes: a hole loop that straddles a drum’s seam
comes back half on each branch (a loop that never closes in the chart,
which no mesher can cut), and a slitted wall’s outer wire hops branches
at every slit. Walked in each wire’s own order, an image whose start
misses the previous traversal’s end by close to a whole period is
shifted by that period; a miss of half a period is a pole, where two
meridians meet at one point with no edge between them, and is left
alone. A seam representation carries both branches by design: the
walk passes through it on the side the occurrence uses and moves
nothing. Every wire after the first is then carried whole onto the
first wire’s branch, so rims, slits and holes all read in one chart.
The images are rewritten in place (GeometryStore::pcurve_mut), once
each; a slit uses one image twice.
§Errors
OgeomError::Dangling if a wire or
edge is not in this model.