pub fn unify_same_domain(
model: &mut Model,
shape: &Shape,
tol: Tolerances,
) -> OgeomResult<(Built, usize)>Expand description
Merge adjacent faces lying on one carrier into single faces.
Two faces qualify when they share an edge and lie on one carrier facing one way, whatever frame each stored it in and whichever way round: the split a boolean or an exchange leaves behind. A carrier is a plane; a cylinder, cone, sphere or torus of one size about one axis; or an extrusion of one basis curve along one line, the curve’s parameter run either way and shifted. The merged face keeps the first face’s surface, its window grown to hold the others’; the others’ pcurves are carried into its chart by the exact map between the two charts (a turn and a shift on a plane; on a curved carrier each parameter run either way and shifted, by a period where it repeats); the shared edges dissolve, or stay as a seam where the merged face closes round its carrier; the faces’ own seams stay seams; the remaining boundary re-chains into an outer ring and one ring per hole. Faces whose boundary does not re-chain so (two rings through one vertex, an edge a third face also bounds, a band closing round its axis with no seam) are left split, the rest merged. Faces on any other surface pass through untouched.
§Errors
As the model’s own builders, where the shape does not resolve in
model.