From 400f44c2a3fa72b0767e8abddb80f21cabdc9c13 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 23 May 2016 16:36:07 +0200 Subject: [PATCH] Make triangulate_faces() a boolean. --- .../triangulate_faces.h | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h index f9300552819..00359458605 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/triangulate_faces.h @@ -247,8 +247,9 @@ public: } template - void operator()(FaceRange face_range, PM& pmesh) + bool operator()(FaceRange face_range, PM& pmesh) { + bool result = true; // One need to store facet handles into a vector, because the list of // facets of the polyhedron will be modified during the loop, and // that invalidates the range [facets_begin(), facets_end()[. @@ -264,8 +265,10 @@ public: // Iterates on the vector of face descriptors BOOST_FOREACH(face_descriptor f, facets) { - this->triangulate_face(f, pmesh); + if(!this->triangulate_face(f, pmesh)) + result = false; } + return result; } void make_hole(halfedge_descriptor h, PM& pmesh) @@ -356,7 +359,7 @@ bool triangulate_face(typename boost::graph_traits::face_descriptor * */ template -void triangulate_faces(FaceRange face_range, +bool triangulate_faces(FaceRange face_range, PolygonMesh& pmesh, const NamedParameters& np) { @@ -372,13 +375,13 @@ void triangulate_faces(FaceRange face_range, typedef typename GetGeomTraits::type Kernel; internal::Triangulate_modifier modifier(vpmap); - modifier(face_range, pmesh); + return modifier(face_range, pmesh); } template -void triangulate_faces(FaceRange face_range, PolygonMesh& pmesh) +bool triangulate_faces(FaceRange face_range, PolygonMesh& pmesh) { - triangulate_faces(face_range, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); + return triangulate_faces(face_range, pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); } /** @@ -398,16 +401,16 @@ void triangulate_faces(FaceRange face_range, PolygonMesh& pmesh) * */ template -void triangulate_faces(PolygonMesh& pmesh, +bool triangulate_faces(PolygonMesh& pmesh, const NamedParameters& np) { - triangulate_faces(faces(pmesh), pmesh, np); + return triangulate_faces(faces(pmesh), pmesh, np); } template -void triangulate_faces(PolygonMesh& pmesh) +bool triangulate_faces(PolygonMesh& pmesh) { - triangulate_faces(faces(pmesh), pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); + return triangulate_faces(faces(pmesh), pmesh, CGAL::Polygon_mesh_processing::parameters::all_default()); } } // end namespace Polygon_mesh_processing