From d9d5f17725ba0f848f79560533031a7b9181ce4c Mon Sep 17 00:00:00 2001 From: Ken Arroyo Ohori Date: Mon, 13 Feb 2017 11:45:17 -0600 Subject: [PATCH] Should be working now --- .../kernels/cgal/CgalConversionFunctions.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/ifcgeom/kernels/cgal/CgalConversionFunctions.cpp b/src/ifcgeom/kernels/cgal/CgalConversionFunctions.cpp index 60404f6828..6919a9319f 100644 --- a/src/ifcgeom/kernels/cgal/CgalConversionFunctions.cpp +++ b/src/ifcgeom/kernels/cgal/CgalConversionFunctions.cpp @@ -48,11 +48,6 @@ bool IfcGeom::CgalKernel::convert(const IfcSchema::IfcExtrudedAreaSolid *l, cgal std::list face_list; face_list.push_back(face); - cgal_face_t top_face; - for (auto const &vertex: face.outer) { - top_face.outer.push_back(vertex+dir); - } face_list.push_back(top_face); - for (std::vector::const_iterator current_vertex = face.outer.begin(); current_vertex != face.outer.end(); ++current_vertex) { @@ -61,13 +56,20 @@ bool IfcGeom::CgalKernel::convert(const IfcSchema::IfcExtrudedAreaSolid *l, cgal if (next_vertex == face.outer.end()) { next_vertex = face.outer.begin(); } cgal_face_t side_face; - side_face.outer.push_back(*current_vertex); side_face.outer.push_back(*next_vertex); - side_face.outer.push_back(*next_vertex+dir); + side_face.outer.push_back(*current_vertex); side_face.outer.push_back(*current_vertex+dir); + side_face.outer.push_back(*next_vertex+dir); face_list.push_back(side_face); } + cgal_face_t top_face; + for (std::vector::const_reverse_iterator vertex = face.outer.rbegin(); + vertex != face.outer.rend(); + ++vertex) { + top_face.outer.push_back(*vertex+dir); + } face_list.push_back(top_face); + cgal_shape_t polyhedron = CGAL::Polyhedron_3(); PolyhedronBuilder builder(&face_list); polyhedron.delegate(builder);