Regina Calculation Engine
|
Iterates through all directed arcs of a knot or link.
More...
#include <link/link.h>
Public Member Functions | |
ArcIterator () | |
Creates a singular iterator. More... | |
ArcIterator (const ArcIterator &)=default | |
Default copy constructor. More... | |
ArcIterator (const Link &link, size_t crossing=0, bool upper=false) | |
Creates a new iterator pointing to the arc exiting the given strand of the given crossing of the given link. More... | |
ArcIterator & | operator++ () |
Preincrement operator. More... | |
ArcIterator | operator++ (int) |
Postincrement operator. More... | |
StrandRef | operator* () const |
Returns the directed arc to which this iterator points. More... | |
ArcIterator & | operator= (const ArcIterator &)=default |
Default assignment operator. More... | |
bool | operator== (const ArcIterator &rhs) const |
Tests whether this and the given iterator are equal. More... | |
bool | operator!= (const ArcIterator &rhs) const |
Tests whether this and the given iterator are different. More... | |
Iterates through all directed arcs of a knot or link.
The order of iteration is as follows. The iterator works through crossings 0,1,... of the underlying link in turn. For each crossing, it visits the arcs exiting the crossing from the lower strand and then the upper strand, in that order.
Zero-crossing unknot components are not visited at all by this iterator type.
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.
|
inline |
Creates a singular iterator.
|
default |
Default copy constructor.
|
inline |
Creates a new iterator pointing to the arc exiting the given strand of the given crossing of the given link.
link | the underlying knot/link. |
crossing | the index of the given crossing. This must be between 0 and link.size()-1 for a deferencable iterator, or must be exactly link.size() for a past-the-end iterator. |
upper | true or false according to whether the iterator should point to the arc exiting the given crossing from the upper or lower strand respectively. For a past-the-end iterator, this should always be false . |
|
inline |
Tests whether this and the given iterator are different.
rhs | the iterator to compare with this. |
true
if and only if the two iterators are different.
|
inline |
|
inline |
Preincrement operator.
|
inline |
Postincrement operator.
|
default |
Default assignment operator.
|
inline |
Tests whether this and the given iterator are equal.
rhs | the iterator to compare with this. |
true
if and only if the two iterators are equal.