diff --git a/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_from_soup.cpp b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_from_soup.cpp index cbe716e5efd..8ba8a825e2d 100644 --- a/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_from_soup.cpp +++ b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_from_soup.cpp @@ -5,6 +5,7 @@ #include #include +#include using K = CGAL::Exact_predicates_inexact_constructions_kernel; @@ -29,6 +30,18 @@ int main(int argc, char* argv[]) << "Number of constrained facets in the CDT: " << ccdt.number_of_constrained_facets() << '\n'; + // Collect constrained facets per polygon + std::vector constrained_facets(polygons.size()); + for(auto facet : ccdt.constrained_facets()) + { + int i = ccdt.face_constraint_index(facet); + ++constrained_facets[i]; + } + auto it = std::max_element(constrained_facets.begin(), constrained_facets.end()); + + std::cout << "The polygon with the most constrained facets has index " + << (it - constrained_facets.begin()) << " and " << *it << " facets.\n"; + std::ofstream ofs(argc > 2 ? argv[2] : "out.mesh"); ofs.precision(17); CGAL::IO::write_MEDIT(ofs, ccdt); 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 6f3207a5852..785ea3cd50b 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 @@ -1034,7 +1034,7 @@ public: */ CDT_3_signed_index face_constraint_index(typename Triangulation::Cell_handle ch, int i) const { - return ch->face_id[static_cast(i)]; + return ch->ccdt_3_data().face_constraint_index(i); } /*! diff --git a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_cell_base_3.h b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_cell_base_3.h index 7371ee1c888..9581696cafe 100644 --- a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_cell_base_3.h +++ b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_cell_base_3.h @@ -98,7 +98,7 @@ public: CGAL::read(is, i); } if(!is) return is; - c.face_id[li] = i; + c->ccdt_3_data().set_face_constraint_index(li, i); } return is; }