Skip to main content

chain_wire_branches

Function chain_wire_branches 

Source
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.