OpenWalnut
1.5.0dev
|
An iterator for iterating the segments of a fiber. More...
#include <WDataSetFibers.h>
Public Member Functions | |
WFiberSegmentsIterator () | |
Default contructor. More... | |
WFiberSegmentsIterator (WDataSetFibers const *fibers, std::size_t fbIdx, std::size_t idx, bool reverse=false) | |
Constructor. More... | |
WFiberSegmentsIterator (WFiberSegmentsIterator const &iter) | |
Copy constructor. More... | |
~WFiberSegmentsIterator () | |
Destructor. More... | |
WFiberSegmentsIterator & | operator= (WFiberSegmentsIterator const &iter) |
Copy operator. More... | |
WFiberSegmentsIterator & | operator++ () |
Increment operator. More... | |
WFiberSegmentsIterator & | operator-- () |
Decrement operator. More... | |
WFiberSegmentsIterator | operator++ (int) |
Increment operator. More... | |
WFiberSegmentsIterator | operator-- (int) |
Decrement operator. More... | |
bool | operator== (WFiberSegmentsIterator const &rhs) const |
Compare to another segment iterator. More... | |
bool | operator!= (WFiberSegmentsIterator const &rhs) const |
Compare to another segment iterator. More... | |
WIteratorRangeUnpacker< WFiberSegmentsIterator > | operator, (WFiberSegmentsIterator &other) |
Creates a temporary object that is used to unpack an iterator range to two iterators. More... | |
operator bool () const | |
Converts to a bool that indicates whether the current iterator is valid, i.e. More... | |
WFiberPointsIterator | start () const |
Returns an iterator to the starting point of the segment. More... | |
WFiberPointsIterator | end () const |
Returns an iterator to the end point of the segment. More... | |
osg::Vec3 | direction () const |
Returns the vector from the starting point position to the end point position. More... | |
double | length () const |
Returns the length of the segment. More... | |
Private Attributes | |
WDataSetFibers const * | m_fibers |
The pointer to the fibers. More... | |
std::size_t | m_fiberIndex |
The index of the fiber. More... | |
std::size_t | m_index |
The index of the current point. More... | |
bool | m_reverse |
Whether to iterate backwards. More... | |
An iterator for iterating the segments of a fiber.
Allows for both forward and backward iteration of segments.
There are two ways to use the iterator. First:
Second:
Iterators to the start and end points of the segment can be gained using the start() and end() methods respectively. Note that for iterators set for reverse iteration, the start and end points are switched.
You can check whether an iterator points to a valid segment of a fiber by:
Definition at line 1154 of file WDataSetFibers.h.
WFiberSegmentsIterator::WFiberSegmentsIterator | ( | ) |
WFiberSegmentsIterator::WFiberSegmentsIterator | ( | WDataSetFibers const * | fibers, |
std::size_t | fbIdx, | ||
std::size_t | idx, | ||
bool | reverse = false |
||
) |
Constructor.
Creates an iterator pointing to a certain segment of a fiber.
fibers | The pointer to the fiber data. |
fbIdx | The index of the fiber in the fiber dataset. |
idx | The index of the starting point of the segment of the current fiber. |
reverse | Whether to iterate backwards. |
Definition at line 858 of file WDataSetFibers.cpp.
WFiberSegmentsIterator::WFiberSegmentsIterator | ( | WFiberSegmentsIterator const & | iter | ) |
Copy constructor.
iter | The iterator to copy from. |
Definition at line 866 of file WDataSetFibers.cpp.
WFiberSegmentsIterator::~WFiberSegmentsIterator | ( | ) |
Destructor.
Definition at line 874 of file WDataSetFibers.cpp.
osg::Vec3 WFiberSegmentsIterator::direction | ( | ) | const |
Returns the vector from the starting point position to the end point position.
Definition at line 954 of file WDataSetFibers.cpp.
References end(), WDataSetFibers::getLengthOfLine(), m_fiberIndex, m_fibers, m_index, and start().
WFiberPointsIterator WFiberSegmentsIterator::end | ( | ) | const |
Returns an iterator to the end point of the segment.
Definition at line 949 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, and m_reverse.
Referenced by direction(), and length().
double WFiberSegmentsIterator::length | ( | ) | const |
Returns the length of the segment.
Definition at line 962 of file WDataSetFibers.cpp.
References end(), and start().
Referenced by WFiberIterator::getFiberLength().
WFiberSegmentsIterator::operator bool | ( | ) | const |
Converts to a bool that indicates whether the current iterator is valid, i.e.
it points to a valid segment and it is safe to use functions such as start().
Definition at line 939 of file WDataSetFibers.cpp.
bool WFiberSegmentsIterator::operator!= | ( | WFiberSegmentsIterator const & | rhs | ) | const |
Compare to another segment iterator.
rhs | The second segment iterator. |
Definition at line 929 of file WDataSetFibers.cpp.
References operator==().
WFiberSegmentsIterator & WFiberSegmentsIterator::operator++ | ( | ) |
Increment operator.
Makes the iterator point to the next segment.
Definition at line 893 of file WDataSetFibers.cpp.
References m_index.
WFiberSegmentsIterator WFiberSegmentsIterator::operator++ | ( | int | ) |
Increment operator.
Makes the iterator point to the next segment.
Definition at line 899 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, and m_reverse.
WIteratorRangeUnpacker< WFiberSegmentsIterator > WFiberSegmentsIterator::operator, | ( | WFiberSegmentsIterator & | other | ) |
Creates a temporary object that is used to unpack an iterator range to two iterators.
The first of these target iterators is *this, the second is the parameter of the operator.
other | The iterator to assign the end iterator of the range to. |
Definition at line 934 of file WDataSetFibers.cpp.
WFiberSegmentsIterator & WFiberSegmentsIterator::operator-- | ( | ) |
Decrement operator.
Makes the iterator point to the previous segment. 3
Definition at line 906 of file WDataSetFibers.cpp.
References m_index.
WFiberSegmentsIterator WFiberSegmentsIterator::operator-- | ( | int | ) |
Decrement operator.
Makes the iterator point to the previous segment.
Definition at line 912 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, and m_reverse.
WFiberSegmentsIterator & WFiberSegmentsIterator::operator= | ( | WFiberSegmentsIterator const & | iter | ) |
Copy operator.
iter | The iterator to copy from. |
Definition at line 878 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, and m_reverse.
bool WFiberSegmentsIterator::operator== | ( | WFiberSegmentsIterator const & | rhs | ) | const |
Compare to another segment iterator.
rhs | The second segment iterator. |
Definition at line 919 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, m_reverse, and wlog::warn().
Referenced by operator!=().
WFiberPointsIterator WFiberSegmentsIterator::start | ( | ) | const |
Returns an iterator to the starting point of the segment.
Definition at line 944 of file WDataSetFibers.cpp.
References m_fiberIndex, m_fibers, m_index, and m_reverse.
Referenced by direction(), and length().
|
private |
The index of the fiber.
Definition at line 1287 of file WDataSetFibers.h.
Referenced by direction(), end(), operator++(), operator--(), operator=(), operator==(), and start().
|
private |
The pointer to the fibers.
Definition at line 1284 of file WDataSetFibers.h.
Referenced by direction(), end(), operator++(), operator--(), operator=(), operator==(), and start().
|
private |
The index of the current point.
Definition at line 1290 of file WDataSetFibers.h.
Referenced by direction(), end(), operator++(), operator--(), operator=(), operator==(), and start().
|
private |
Whether to iterate backwards.
Definition at line 1293 of file WDataSetFibers.h.
Referenced by end(), operator++(), operator--(), operator=(), operator==(), and start().