pub fn lower_composite(
members: &[Profile],
tolerance: Tolerance,
) -> Result<(Vec<DVec2>, Vec<Vec<DVec2>>), GeomError>Expand description
Union the members of a composite profile into one section.
Members of an IfcCompositeProfileDef act as a single section and may
touch or overlap, so they are UNIONED. Concatenating them as rings would
double-count shared area and emit self-intersecting walls.
Measured behaviour of the union: overlapping members merge to one polygon, edge-touching members merge to one, four bars arranged as a picture frame merge to one polygon carrying one hole, and disjoint members stay two polygons – which is the case this refuses.