| 107 | } |
| 108 | |
| 109 | CGAL::Nef_polyhedron_3<Kernel_> ifcopenshell::geometry::utils::create_nef_polyhedron(std::list<cgal_face_t> &face_list) { |
| 110 | CGAL::Polyhedron_3<Kernel_> polyhedron = create_polyhedron(face_list); |
| 111 | if (polyhedron.is_closed()) { |
| 112 | try { |
| 113 | if (!CGAL::Polygon_mesh_processing::is_outward_oriented(polyhedron)) { |
| 114 | CGAL::Polygon_mesh_processing::reverse_face_orientations(polyhedron); |
| 115 | } |
| 116 | } catch (CGAL::Failure_exception& e) { |
| 117 | Logger::Message(Logger::LOG_ERROR, e); |
| 118 | } |
| 119 | } |
| 120 | CGAL::Polygon_mesh_processing::triangulate_faces(polyhedron); |
| 121 | CGAL::Nef_polyhedron_3<Kernel_> nef_polyhedron; |
| 122 | try { |
| 123 | nef_polyhedron = CGAL::Nef_polyhedron_3<Kernel_>(polyhedron); |
| 124 | } catch (...) { |
| 125 | Logger::Message(Logger::LOG_ERROR, "Conversion to Nef polyhedron failed!"); |
| 126 | } |
| 127 | return nef_polyhedron; |
| 128 | } |
| 129 | |
| 130 | CGAL::Nef_polyhedron_3<Kernel_> ifcopenshell::geometry::utils::create_nef_polyhedron(CGAL::Polyhedron_3<Kernel_> &polyhedron) { |
| 131 | // @todo needed? |