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 d5bcafcbdfc..447115ed473 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 @@ -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. 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 25096d0c26f..35c3104dd7e 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 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 637595f1e25..d4f3128f817 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; /// @} diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_3.h index 97459a258a1..bec183f4e51 100644 --- a/Triangulation_3/include/CGAL/Regular_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Regular_triangulation_3.h @@ -665,6 +665,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;