Function lower_composite

Source
pub fn lower_composite(
    members: &[Profile],
    tolerance: Tolerance,
) -> GeomResult<(Vec<Point2>, Vec<Vec<Point2>>)>
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.