From df0e12254c6b557bc347be32f3929550cc3ac9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Fri, 25 Jul 2025 14:45:43 +0200 Subject: [PATCH 1/5] Drop bad const& in documentation There is no const & in the actual code --- .../Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h b/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h index 3d110a67cb2..d106482eb54 100644 --- a/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h +++ b/Triangulation_3/doc/Triangulation_3/CGAL/Regular_triangulation_cell_base_3.h @@ -75,7 +75,7 @@ circumcenter is not supposed to be computed by the constructor `Construct_weighted_circumcenter_3` of the traits class, hence the returned point has no weight. */ -const Point_3& weighted_circumcenter(const Traits& gt = Traits()) const; +Point_3 weighted_circumcenter(const Traits& gt = Traits()) const; /// @} From d182dabf9446f5e7b5742ffd4af414c4eb419f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Mon, 28 Jul 2025 15:41:20 +0200 Subject: [PATCH 2/5] cannot collapse only if one of the two vertex is not constrained + fill maps only if required --- .../repair_degeneracies.h | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h index d6ac3595d80..ccbcc17f10b 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h @@ -646,6 +646,7 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, { using CGAL::parameters::choose_parameter; using CGAL::parameters::get_parameter; + using parameters::is_default_parameter; typedef typename boost::graph_traits::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; @@ -702,21 +703,25 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, CGAL_precondition(is_triangle_mesh(tmesh)); // constrain extremities of constrained edges - for(face_descriptor f : face_range) + if constexpr (!is_default_parameter::value || + !is_default_parameter::value) { - if(f == boost::graph_traits::null_face()) - continue; - - for(halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) + for(face_descriptor f : face_range) { - if(get(ecm, edge(h, tmesh))) + if(f == boost::graph_traits::null_face()) + continue; + + for(halfedge_descriptor h : CGAL::halfedges_around_face(halfedge(f, tmesh), tmesh)) { - put(vcm, source(h, tmesh), true); - put(vcm, target(h, tmesh), true); - } - else if(get(vcm_np, target(h, tmesh))) - { - put(vcm, target(h, tmesh), true); + if(get(ecm, edge(h, tmesh))) + { + put(vcm, source(h, tmesh), true); + put(vcm, target(h, tmesh), true); + } + else if(get(vcm_np, target(h, tmesh))) + { + put(vcm, target(h, tmesh), true); + } } } } @@ -813,7 +818,7 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range, const edge_descriptor e = edge(h, tmesh); CGAL_assertion(!get(ecm, edge(h, tmesh))); - CGAL_assertion(!get(vcm, source(h, tmesh)) && !get(vcm, target(h, tmesh))); + CGAL_assertion(!get(vcm, source(h, tmesh)) || !get(vcm, target(h, tmesh))); #ifdef CGAL_PMP_DEBUG_REMOVE_DEGENERACIES_EXTRA std::cout << " treat needle: " << e From de6cbbce0c650744a5bb1f42c2b132e7ec4e4773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Tue, 29 Jul 2025 09:58:22 +0200 Subject: [PATCH 3/5] fix unused var warning --- .../CGAL/Boolean_set_operations_2/Gps_polygon_validation.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h b/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h index 8f50cc8960c..4910352c191 100644 --- a/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h +++ b/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h @@ -677,7 +677,7 @@ bool are_holes_and_boundary_pairwise_disjoint Polygon_set_2 gps(traits); // check for 2D intersections of holes (holes must be disjoint except for // vertices) - Size num_of_holes = 0; + // Size num_of_holes = 0; // functors for creating a pwh needed for inserting pgns into the arrangement // quickly Construct_polygon_with_holes_2 construct_pwh_functor = @@ -701,7 +701,7 @@ bool are_holes_and_boundary_pairwise_disjoint // traits.Construct_polygon_with_holes_2 (hole); // Polygon_with_holes_2 empty_pwh(hole); gps.insert(empty_pwh); - num_of_holes++; + // num_of_holes++; } } /* not good - doesn't work if intersection at vertices is legal. From 59bf188ea20320a51a41f853fe39dc96e6244f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Wed, 30 Jul 2025 09:37:34 +0200 Subject: [PATCH 4/5] fix one more warning --- .../CGAL/Boolean_set_operations_2/Gps_polygon_validation.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h b/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h index 4910352c191..f7d2de6fe7d 100644 --- a/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h +++ b/Boolean_set_operations_2/include/CGAL/Boolean_set_operations_2/Gps_polygon_validation.h @@ -622,7 +622,7 @@ bool are_holes_and_boundary_pairwise_disjoint Topology_traits; typedef CGAL::Gps_on_surface_base_2 Polygon_set_2; - typedef typename Polygon_set_2::Size Size; + // typedef typename Polygon_set_2::Size Size; typedef typename Traits_2::Polygon_2 Polygon_2; typedef typename Traits_2::Polygon_with_holes_2 Polygon_with_holes_2; typedef typename Polygon_with_holes_2::Hole_const_iterator From deb2229f8b98ac84f6d29e7302d453df3dddd3b9 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Wed, 30 Jul 2025 11:33:16 +0200 Subject: [PATCH 5/5] fix the case where `p` is hidden in the RT3 if `p` would be hidden, its conflict zone is empty --- Triangulation_3/include/CGAL/Regular_triangulation_3.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_3.h index 4eb35b352bd..752e4333979 100644 --- a/Triangulation_3/include/CGAL/Regular_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Regular_triangulation_3.h @@ -667,6 +667,9 @@ public: { CGAL_precondition(dimension() >= 2); + if(the_facet_is_in_its_cz) + *the_facet_is_in_its_cz = false; + std::vector cells; cells.reserve(32); std::vector facets;