From b240dbab672ccb2a63e7ee58a2bc22a3e832d979 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 13 Dec 2022 14:27:03 +0100 Subject: [PATCH] Add CDT::write_missing_segments_file --- .../CGAL/Conforming_Delaunay_triangulation_3.h | 13 +++++++++++++ .../test/Triangulation_3/cdt_3_from_off.cpp | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h b/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h index 5583bf04717..4067e82daa0 100644 --- a/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h @@ -236,6 +236,19 @@ public: }); } + void write_missing_segments_file(std::ostream &out) { + return std::for_each( + constraint_hierarchy.sc_begin(), constraint_hierarchy.sc_end(), + [this, &out](const auto &sc) { + if (!tr.tds().is_edge(sc.first.first, sc.first.second)) { + const auto v0 = sc.first.first; + const auto v1 = sc.first.second; + out << "2 " << this->tr.point(v0) << " " << this->tr.point(v1) + << '\n'; + } + }); + } + /// @{ /// remove functions cannot be called void remove(Vertex_handle) = delete; diff --git a/Triangulation_3/test/Triangulation_3/cdt_3_from_off.cpp b/Triangulation_3/test/Triangulation_3/cdt_3_from_off.cpp index 27dc0fce744..f25defa905a 100644 --- a/Triangulation_3/test/Triangulation_3/cdt_3_from_off.cpp +++ b/Triangulation_3/test/Triangulation_3/cdt_3_from_off.cpp @@ -59,6 +59,10 @@ int main(int argc, char* argv[]) std::ofstream missing_faces("missing_faces.polylines.txt"); cdt.write_missing_subfaces_file(missing_faces); } + { + std::ofstream missing_edges("missing_segments.polylines.txt"); + cdt.write_missing_segments_file(missing_edges); + } // auto edge_is_feature_map = get(CGAL::edge_is_feature, mesh); // auto face_patch_id_map = get(CGAL::face_patch_id_t(), mesh);