From ab8fed48419e0cf0d1c19a71fb1bf2c1063e42e3 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Mon, 2 Jun 2025 11:22:38 +0200 Subject: [PATCH] use try/catch to pre-catch non-planar PLC facets when CDT_2 fails --- .../CGAL/Conforming_constrained_Delaunay_triangulation_3.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h index 5bb76a99090..bcef1f3c6b8 100644 --- a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h +++ b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h @@ -1691,7 +1691,12 @@ private: << tr().point(vh_2d->info().vertex_handle_3d) << ")\n"; } - cdt_2.insert_constraint(previous_2d, vh_2d); + try { + cdt_2.insert_constraint(previous_2d, vh_2d); + } catch(typename CDT_2::Intersection_of_constraints_exception&) { + // intersection of constraints probably due to the projection + CGAL_error_msg("Error : Input PLC facet is not coplanar!"); + } previous_2d = vh_2d; } }