CGAL 4.7 - CGAL and the Boost Graph Library: Iterators and Circulators

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.7 - CGAL and the Boost Graph Library

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Functions
Iterators and Circulators
CGAL and the Boost Graph Library Reference

##

Several iterators and circulators are provided that enable to iterate through the halfedges incident to a given face or vertex.

Starting at a halfedge `h`, applying several times `next(h,g)` brings us back to the halfedge where we started. All halfedges traversed on the way are incident to the same face. Using the composition of the `next(h,g)` and `opposite(h,g)` functions results in another cycle, namely the cycle of halfedges which are incident to the same vertex. For convenience, two iterator and circulator types enable iterating through all the halfedges incident to a given face, and all the halfedges having a given vertex as target.

## Classes

class | CGAL::Halfedge_around_source_iterator< Graph >
| A bidirectional iterator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges having the same vertex as source. More...
class | CGAL::Halfedge_around_target_iterator< Graph >
| A bidirectional iterator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges having the same vertex as target. More...
class | CGAL::Halfedge_around_face_iterator< Graph >
| A bidirectional iterator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges incident to the same face or border. More...
class | CGAL::Halfedge_around_source_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges having the same vertex as source. More...
class | CGAL::Face_around_target_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::face_descriptor` over all faces incident to the same vertex. More...
class | CGAL::Halfedge_around_target_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges having the same vertex as target. More...
class | CGAL::Halfedge_around_face_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::halfedge_descriptor` over all halfedges incident to the same face or border. More...
class | CGAL::Face_around_face_iterator< Graph >
| A bidirectional iterator with value type `boost::graph_traits<Graph>::face_descriptor`. More...
class | CGAL::Face_around_face_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::face_descriptor`. More...
class | CGAL::Vertex_around_face_iterator< Graph >
| A bidirectional iterator with value type `boost::graph_traits<Graph>::vertex_descriptor` over all vertices incident to the same face or border. More...
class | CGAL::Vertex_around_target_circulator< Graph >
| A bidirectional circulator with value type `boost::graph_traits<Graph>::vertex_descriptor` over all vertices adjacent to the same vertex. More...

## Functions

template<typename Graph >
Iterator_range < Halfedge_around_source_iterator < Graph > > | CGAL::halfedges_around_source (typename boost::graph_traits< Graph >::halfedge_descriptor h, Graph &g)
| returns an iterator range over all halfedges with vertex `source(h,g)` as source.
template<typename Graph >
Iterator_range < Halfedge_around_source_iterator < Graph > > | CGAL::halfedges_around_source (typename boost::graph_traits< Graph >::vertex_descriptor v, Graph &g)
| returns an iterator range over all halfedges with vertex `v` as source.
template<typename Graph >
Iterator_range < Halfedge_around_target_iterator < Graph > > | CGAL::halfedges_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all halfedges with vertex `target(h,g)` as target.
template<typename Graph >
Iterator_range < Halfedge_around_target_iterator < Graph > > | CGAL::halfedges_around_target (typename boost::graph_traits< Graph >::vertex_descriptor v, Graph &g)
| returns an iterator range over all halfedges with vertex `v` as target.
template<typename Graph >
Iterator_range < Halfedge_around_face_iterator < Graph > > | CGAL::halfedges_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all halfedges incident to the same face or border as `h`.
template<typename Graph >
Iterator_range < Face_around_target_iterator < Graph > > | CGAL::faces_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all faces around vertex `target(h,g)`.
template<typename Graph >
Iterator_range < Face_around_face_iterator < Graph > > | CGAL::faces_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all edge-adjacent faces to the same face `face(h,g)`.
template<typename Graph >
Iterator_range < Vertex_around_target_iterator < Graph > > | CGAL::vertices_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all vertices adjacent to the vertex `target(h,g)`.
template<typename Graph >
Iterator_range < Vertex_around_face_iterator < Graph > > | CGAL::vertices_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
| returns an iterator range over all vertices adjacent to the face `face(h,g)`.