Support for IfcCompositeProfileDef and IfcDerivedProfileDef

This commit is contained in:
Thomas Krijnen
2014-03-16 13:34:01 +00:00
parent 4c17d153f4
commit 220b36b09c
8 changed files with 228 additions and 30 deletions
+4 -1
View File
@@ -321,7 +321,7 @@ bool IfcGeom::convert_curve_to_wire(const Handle(Geom_Curve)& curve, TopoDS_Wire
return true;
}
bool IfcGeom::profile_helper(int numVerts, double* verts, int numFillets, int* filletIndices, double* filletRadii, gp_Trsf2d trsf, TopoDS_Face& face) {
bool IfcGeom::profile_helper(int numVerts, double* verts, int numFillets, int* filletIndices, double* filletRadii, gp_Trsf2d trsf, TopoDS_Shape& face_shape) {
TopoDS_Vertex* vertices = new TopoDS_Vertex[numVerts];
for ( int i = 0; i < numVerts; i ++ ) {
@@ -334,6 +334,7 @@ bool IfcGeom::profile_helper(int numVerts, double* verts, int numFillets, int* f
for ( int i = 0; i < numVerts; i ++ )
w.Add(BRepBuilderAPI_MakeEdge(vertices[i],vertices[(i+1)%numVerts]));
TopoDS_Face face;
IfcGeom::convert_wire_to_face(w.Wire(),face);
if ( numFillets ) {
@@ -347,6 +348,8 @@ bool IfcGeom::profile_helper(int numVerts, double* verts, int numFillets, int* f
face = TopoDS::Face(fillet.Shape());
}
face_shape = face;
delete[] vertices;
return true;
}