Files
IfcOpenShell/src
Ryan Schultz 4184ec9c94 Fix BRep and opening element mirroring
Three fixes in TrueMirrorElements / _apply_opening_mirror:

1. IfcFacetedBrep support: implement mirroring in mirror_item by
   negating vertex coordinates along the flipped axes and reversing
   face winding for an odd number of flipped axes (restores outward
   normals).

2. Routing: add type_has_reps guard to is_assign_type_path so
   elements whose IfcTypeProduct carries no RepresentationMaps fall
   through to direct geometry mirroring instead of a no-op type swap.

3. Opening placement: use H@R@H conjugation (not direct Householder
   on columns) for the rotation part of _apply_opening_mirror.
   Direct Householder yields det=-1; IFC's Y=Z×X normalization then
   introduces a spurious 180°Z rotation. Conjugation keeps det=+1
   and produces the correct mirrored rotation. Also call
   builder.mirror() on each opening representation item so local
   vertex data is mirrored alongside the placement frame.

Generated with the assistance of an AI coding tool.
AI effort: 8/10
2026-06-22 13:12:09 -05:00
..
2026-02-27 14:52:55 +05:00
2026-01-26 17:13:18 +05:00
2026-02-27 14:52:55 +05:00
2026-06-11 21:09:56 +02:00