The IfcxMesh class is a subtype of RoseMesh that holds a mesh generated from an IFC representation item. It provides associativity between the generated mesh and the IFC source data.
When using stix_mesh_make_start() or similar functions, you may access the mesh while it is still being populated by different threads. The mesh lock/unlock functions should be used to allow safe access to meshes which are not yet complete.
IfcxMesh( IfcRepresentation * rep, IfcRepresentationItem * rep_item, RoseMeshOptions * opts = 0 );
The constructor will create an empty IfcxMesh and will initialize the option and object references, but will not create any mesh data. Use ifcx_mesh_make() to create a mesh object and populate it with mesh data.
const RoseMeshEdgeInfo * getEdgeInfoFromIfc( IfcRepresentationItem * curve ) const;
The getEdgeInfoFromIfc() functionr searches for the edge that originated from the given IFC edge, and returns the edge information structure used to manage the topology of the mesh.
unsigned getFaceIndexFromIfc( IfcRepresentation * face ) const;
The getFaceIndexFromIfc() function returns the index of the
mesh face that originated from the given IFC face,
ROSE_NOTFOUND if no match was found.
const RoseMeshFaceInfo * getFaceInfoFromIfc( IfcRepresentation * face ) const;
The getFaceInfoFromIfc() function searches for the mesh face that originated from the given IFC face, and returns the mathematical surface and solver information from the original IFC face data.
This also includes the edge loop information and original UV trim curves. This infomation is usually discarded after faceting to save space but can be kept by setting the RoseMeshOptions::setSaveFaceInfo() flag.
IfcRepresentationItem * getIfcEdge( unsigned i ) const;
The getIfcEdge() function returns the IFC edge instance, which will be an edge curve or boundary curve. The inherited RoseMesh::getEdgeObject() function returns the same object as a more general RoseObject pointer.
IfcRepresentationItem * getIfcFace( unsigned i ) const;
The getIfcFace() function gets the IFC face instance for a given mesh face by index. The inherited RoseMesh::getFaceObject() function returns the same object as a more general RoseObject pointer.
IfcRepresentation * getIfcRep() const;
The getIfcRep() function returns the IFC representation that was the source of the mesh. This provides context information for units and uncertainty. The inherited RoseMesh::getRepObject() function returns the same object as a more general RoseObject pointer.
IfcRepresentationItem * getIfcRepItem() const;
The getIfcRepItem() function returns the IFC data object that the mesh was created from. The inherited RoseMesh::getObject() function returns the same object as a more general RoseObject pointer.
unsigned getVertexIndex( IfcCartesianPoint * pt ) const; unsigned getVertexIndex( IfcVertex * v ) const;
The getVertexIndex() function returns the vertex identifier for a given IFC point or vertex. This is can be used to maintian associativitiy between the IFC items and the elements in the mesh.