Expand description
Lower Derived and Composite profiles onto the concrete builders
(ADR 0054).
§Derived
A derived profile is a basis plus an affine transform. Lowering it means pushing the transform down onto the basis geometry, which is only sound when the transform preserves the SHAPE KIND of what it moves:
- A circle stays a circle only under a CONFORMAL (similarity) linear part. A non-uniform scale or a shear turns it into an ellipse, which this crate cannot extrude, so those are refused rather than silently relabelled. Note a shear has determinant 1, so a determinant check alone would let it through.
- A negative determinant MIRRORS, reversing ring orientation. The extruders assume counter-clockwise outer rings, so mirrored rings are reversed on lowering rather than handed over inside-out.
§Composite
Profile::Composite is the IfcCompositeProfileDef case: several
profiles acting as ONE section. Members may touch or overlap, so they are
unioned rather than concatenated – concatenating overlapping members
would double-count the shared area and produce self-intersecting walls.
The exact extrusion and revolution use composite_regions, which unions
the members’ exact contours – arcs and member holes included – over one
ArcArrangement (ADR 0072) and returns every connected piece. Disjoint
members become separate solids in one ExactBRep (#111).
lower_composite is the older polygon union, kept for its callers; it
refuses arcs, member holes and disjoint members.
Structs§
- Composite
Region - One connected piece of a composite section.
Functions§
- composite_
regions - Union a composite’s members exactly and return every connected piece.
- lower_
composite - Union the members of a composite profile into one section.
- lower_
derived - Push an affine transform down onto a basis profile.