As part of 0.6 refactoring
Aims:
- Abstraction to have a OpenCascade-agnostic interface
- To allow for a mesh based kernel (e.g. CGAL). OpenCascade carries a lot of overhead for simple faceted geometries in IFC. A hybrid BRep-mesh based approach would alleviate the remaining performance bottlenecks
- Companies might want to use proprietary geometry kernels for reliability and integration with their products
- Maintain IFC-instance to TopoDS_Shape mapping
IfcGeom::IfcRepresentationShapeItem (a {placement, shape, style}-tuple) not particularly granular. E.g material overrides for specific faces within a shell cannot be recorded.
- Now, faces with boolean results from operands with different styles cannot retain association to original operand and therefore loose style association.
- Provides benefits in advanced visualisation where e.g an
IfcCartesianPoint of a IfcPolyline in an IfcExtrudedAreaSolid can be traced back to the IFC instance.
Implementation:
Mesh based
To be determined
Open Cascade
Every operation results in a TopoDS_Compound and a mapping of TopoDS_Shape -> IfcRepresentationItem*. At the moment of triangulation, individual faces can retrieve their IfcSurfaceStyle from the mapping.
As part of 0.6 refactoring
Aims:
IfcGeom::IfcRepresentationShapeItem(a {placement, shape, style}-tuple) not particularly granular. E.g material overrides for specific faces within a shell cannot be recorded.IfcCartesianPointof aIfcPolylinein anIfcExtrudedAreaSolidcan be traced back to the IFC instance.Implementation:
Mesh based
To be determined
Open Cascade
Every operation results in a
TopoDS_Compoundand a mapping ofTopoDS_Shape->IfcRepresentationItem*. At the moment of triangulation, individual faces can retrieve theirIfcSurfaceStylefrom the mapping.