From bcf2f60be26b541b4adb45dbaf4c6e6c1660ba08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Fri, 7 Oct 2022 09:19:47 +0200 Subject: [PATCH] Revert "Add some descriptor validity preconditions to BGL iterators" This reverts commit e67b73e849ae346533f2f9490a9e98f790eb8946. Some code such as copy_face_graph() uses iterators while building graphs --- BGL/include/CGAL/boost/graph/iterator.h | 26 ++++++++++++------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/BGL/include/CGAL/boost/graph/iterator.h b/BGL/include/CGAL/boost/graph/iterator.h index 90ee1c370dd..c8af78eaf8b 100644 --- a/BGL/include/CGAL/boost/graph/iterator.h +++ b/BGL/include/CGAL/boost/graph/iterator.h @@ -815,7 +815,6 @@ Iterator_range > halfedges_around_source(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Halfedge_around_source_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -827,7 +826,6 @@ template Iterator_range > halfedges_around_source(typename boost::graph_traits::vertex_descriptor v, const Graph& g) { - CGAL_precondition(is_valid_vertex_descriptor(v, g)); return halfedges_around_source(opposite(halfedge(v,g),g),g); } @@ -840,7 +838,6 @@ Iterator_range > halfedges_around_target(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Halfedge_around_target_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -852,7 +849,6 @@ template Iterator_range > halfedges_around_target(typename boost::graph_traits::vertex_descriptor v, const Graph& g) { - CGAL_precondition(is_valid_vertex_descriptor(v, g)); return halfedges_around_target(halfedge(v,g),g); } @@ -865,7 +861,6 @@ Iterator_range > halfedges_around_face(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Halfedge_around_face_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -970,7 +965,6 @@ Iterator_range > faces_around_target(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Face_around_target_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -983,7 +977,6 @@ Iterator_range > faces_around_face(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Face_around_face_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -1124,7 +1117,6 @@ Iterator_range > opposite_edges_around_face(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Opposite_edge_around_face_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -1160,10 +1152,11 @@ Iterator_range > edges_around_face(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Edge_around_face_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } + + /** * \ingroup PkgBGLIterators * A bidirectional circulator with value type `boost::graph_traits::%vertex_descriptor` over all vertices adjacent to the same vertex. @@ -1280,16 +1273,15 @@ Iterator_range > adjacent_vertices(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Vertex_around_target_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } + template Iterator_range > adjacent_vertices(typename boost::graph_traits::vertex_descriptor v, const Graph& g) { typedef Vertex_around_target_iterator I; - CGAL_precondition(is_valid_vertex_descriptor(v, g)); return make_range(I(halfedge(v,g),g), I(halfedge(v,g),g,1)); } @@ -1302,7 +1294,6 @@ Iterator_range > vertices_around_target(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Vertex_around_target_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -1311,7 +1302,6 @@ Iterator_range > vertices_around_target(typename boost::graph_traits::vertex_descriptor v, const Graph& g) { typedef Vertex_around_target_iterator I; - CGAL_precondition(is_valid_vertex_descriptor(v, g)); return make_range(I(halfedge(v,g),g), I(halfedge(v,g),g,1)); } /** @@ -1323,7 +1313,6 @@ Iterator_range > vertices_around_face(typename boost::graph_traits::halfedge_descriptor h, const Graph& g) { typedef Vertex_around_face_iterator I; - CGAL_precondition(is_valid_halfedge_descriptor(h, g)); return make_range(I(h,g), I(h,g,1)); } @@ -1366,6 +1355,9 @@ private: typename boost::graph_traits::edge_descriptor dereference() const { return opp(*this->base_reference()); } }; + + + template class In_edge_iterator : public boost::iterator_adaptor< @@ -1404,6 +1396,12 @@ public: typename boost::graph_traits::edge_descriptor dereference() const { return fct(*this->base_reference()); } }; + + + + + } // CGAL + #endif /* CGAL_BGL_ITERATORS_H */