template<int dim, bool out>
class regina::graph::IncidentDualEdgeIterator< dim, out >
Used to iterate through all dual edges incident to a given dual vertex of a dim-dimensional triangulation.
Let v denote this vertex; note that v corresponds to a top-dimensional simplex of the triangulation. The order of iteration will follow those dual edges that pass through facets 0, 1, ..., dim of this simplex in turn. Note however that the range of iterators may be smaller than (dim+1), since a dual edge iterator will skip past those facets of the simplex that lie on the boundary of the triangulation.
When an IncidentDualEdgeIterator is dereferenced, the resulting dual edge must be given an orientation (as required by the DualEdge class). This orientation is determined by the template parameter out. If out is true
then the dual edges will be oriented away from the dual vertex v (so v is the source), and if out is false
then they will be oriented towards v (so v is the target).
This class implements the Boost multipass input iterator concept, which is similar to the standard C++ forward iterator except that the reference type may be the same as value_type (and so, in particular, the dereference operator may return by value). This header also specialises std::iterator_traits for this iterator type.
- Template Parameters
-
dim | the dimension of the underlying triangulation. |
out | indicates the orientation that will be assigned to the incident dual edges, as described above. |
template<int dim, bool out>
Creates a new iterator that runs through all dual edges incident to the given dual vertex.
The dual vertex is specified by passing the corresponding top-dimensional simplex simp in the underlying triangulation.
The iterator will begin at the dual edge passing through facet number facet of simp, assuming there is a simplex on the other side. However, if that is a boundary facet of the triangulation, then the iterator will skip forward through the list of facets until it either locates an internal facet (with a simplex on the other side), or moves past-the-end (facet number dim+1).
- Parameters
-
simp | the dual vertex (i.e., top-dimensional simplex) whose incident dual edges we are iterating through. |
facet | indicates the facet of simp at which the iteration should begin. This must be between 0 and (dim+1) inclusive, where a value of (dim+1) indicates an iterator that is past-the-end. |