How filling closed curve ( TopoDS_Wire) to TopoDS_Face?

Hi,
I have a have a closed planar wire (see pic.1), where all Z is const; how I can transform it to single TopoDS_Face? Standard algo -- BRepBuilderAPI_Make Face() returned result picture pic2. I wanted getting a result such as pic3 without any auxiliary triangles. (ther is Shell generated other method).

Attachments: 
Mikhail Sazonov's picture

Could you show the piece of code how you make a face? Also, it would be worth attaching the BREP file of the wire.

Georg Grebenyuk's picture

In my case I want transform planar tin-surface from AEC software to 3D-solid. Because of I couldn't found any standard methods in OpenCascade. I have been using next logic:
- reading all TIN faces and creation for each of them TopoDS_Face; all Faces are = TopoDS_Shell;
- next I find external border as list of Edges that have unique geometry (it's external Wire that I means);
- next I create Face for 4 Vertexes for each edge (as bottom Z I take some elevation that less of all other points) and save into Temporal structure my Wire.

As source code I can put that link (with method where that wire it's Identify)
https://github.com/GeorgGrebenyuk/renga_surfaces_work_plugin/blob/f474cf...)
As the example file, I attaching an IGES-file = top-shell of my surface (that equal of my source file - LandXML)

Attachments: 
Mikhail Sazonov's picture

You create not connected wire. In a proper wire object, adjacent edges must share the same vertex. It is not in your case. Passing such invalid wire to the face maker leads to the incorrect face in the result.