Triangulation with shared faces

Hi all,
I am trying to get the following workflow to work. I have a geometry of solids imported from step-files to create a scene.
The faces of the solids I need a triangulated representation of.
There are however the following constraints:
- The solids have to be allowed to have shared faces.
- Triangulation must be watertight
- Faces have to be imprinted. In a sense I need to know which solid (if any) is on the other side of a face.
- Shared faces must have exactly identical vertices, meaning I can't really triangulate them separately. I could reuse a single triangulation in two faces but that runs the risk of not ending up with watertight faces.

I am not sure how to handle this situation. It seems to me that applying BrepMesh_IncrementalMesh somehow ought to be able to create what I need, but I am not entirely sure. Does anyone have any general advice here?
I've been searching through the forums etc. but not quite hit the spot.


Dmitrii Pasukhin's picture

TopoDS_Face is a smart pointer wrapper with unique orientation and location (mesh and geometry are shared). Incremental mesh in this case created one tessellation for each shared object of TopoDS_TShape. If you have single TopoDS_TFace(smart pointer) you will have the same tessellation.

If TopoDS_TFace is different - you will need to update mesh by yourself with you logic. You are free put your Handle(Poly_Triangulation) into any TopoDS_Face.

Best regards, Dmitrii.

Erik Knudsen's picture

Ah - I think I understand now - thank you very much.