Try-Catch the CDT constraint insertions

This commit is contained in:
Mael Rouxel-Labbé 2023-03-28 22:42:40 +02:00
parent f570e0ec2e
commit 4d03dbe076
1 changed files with 12 additions and 4 deletions

View File

@ -1442,12 +1442,20 @@ triangulate_hole_polyline_with_cdt(const PointRange& points,
vertices[v->info()] = v;
}
try
{
for (std::size_t i = 0; i < size; ++i) {
const std::size_t ip = (i + 1) % size;
if (vertices[i] != vertices[ip]) {
cdt.insert_constraint(vertices[i], vertices[ip]);
}
}
}
catch(const typename CDT::Intersection_of_constraints_exception&)
{
visitor.end_planar_phase(false);
return false;
}
// Mark external faces.
for (typename CDT::All_faces_iterator fit = cdt.all_faces_begin(),