OpenWalnut  1.5.0dev
Public Member Functions | Private Attributes | List of all members
WFiberSegmentsIterator Class Reference

An iterator for iterating the segments of a fiber. More...

#include <WDataSetFibers.h>

+ Collaboration diagram for WFiberSegmentsIterator:

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...
 
WFiberSegmentsIteratoroperator= (WFiberSegmentsIterator const &iter)
 Copy operator. More...
 
WFiberSegmentsIteratoroperator++ ()
 Increment operator. More...
 
WFiberSegmentsIteratoroperator-- ()
 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< WFiberSegmentsIteratoroperator, (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...
 

Detailed Description

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:

for( WFiberSegmentsIterator si = some_fiber_iterator.segments().begin();
si != some_fiber_iterator.segments().end(); ++si )
{
...
}
An iterator for iterating the segments of a fiber.
WFiberPointsIterator end() const
Returns an iterator to the end point of the segment.

Second:

for( ( si, se ) = some_fiber_iterator.segments(); si != se; ++si )
{
...
}

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:

if( iterator )
{
...
}

Definition at line 1154 of file WDataSetFibers.h.

Constructor & Destructor Documentation

◆ WFiberSegmentsIterator() [1/3]

WFiberSegmentsIterator::WFiberSegmentsIterator ( )

Default contructor.

Creates an invalid iterator.

Definition at line 850 of file WDataSetFibers.cpp.

◆ WFiberSegmentsIterator() [2/3]

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.

Parameters
fibersThe pointer to the fiber data.
fbIdxThe index of the fiber in the fiber dataset.
idxThe index of the starting point of the segment of the current fiber.
reverseWhether to iterate backwards.

Definition at line 858 of file WDataSetFibers.cpp.

◆ WFiberSegmentsIterator() [3/3]

WFiberSegmentsIterator::WFiberSegmentsIterator ( WFiberSegmentsIterator const &  iter)

Copy constructor.

Parameters
iterThe iterator to copy from.

Definition at line 866 of file WDataSetFibers.cpp.

◆ ~WFiberSegmentsIterator()

WFiberSegmentsIterator::~WFiberSegmentsIterator ( )

Destructor.

Definition at line 874 of file WDataSetFibers.cpp.

Member Function Documentation

◆ direction()

osg::Vec3 WFiberSegmentsIterator::direction ( ) const

Returns the vector from the starting point position to the end point position.

Returns
*end() - *start()

Definition at line 954 of file WDataSetFibers.cpp.

References end(), WDataSetFibers::getLengthOfLine(), m_fiberIndex, m_fibers, m_index, and start().

+ Here is the call graph for this function:

◆ end()

WFiberPointsIterator WFiberSegmentsIterator::end ( ) const

Returns an iterator to the end point of the segment.

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().

+ Here is the caller graph for this function:

◆ length()

double WFiberSegmentsIterator::length ( ) const

Returns the length of the segment.

Returns
segment length

Definition at line 962 of file WDataSetFibers.cpp.

References end(), and start().

Referenced by WFiberIterator::getFiberLength().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator bool()

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.

◆ operator!=()

bool WFiberSegmentsIterator::operator!= ( WFiberSegmentsIterator const &  rhs) const

Compare to another segment iterator.

Parameters
rhsThe second segment iterator.
Returns
false, iff the two iterators point to the same segment of the same fiber and have the same directions.

Definition at line 929 of file WDataSetFibers.cpp.

References operator==().

+ Here is the call graph for this function:

◆ operator++() [1/2]

WFiberSegmentsIterator & WFiberSegmentsIterator::operator++ ( )

Increment operator.

Makes the iterator point to the next segment.

Returns
The incremented iterator.

Definition at line 893 of file WDataSetFibers.cpp.

References m_index.

◆ operator++() [2/2]

WFiberSegmentsIterator WFiberSegmentsIterator::operator++ ( int  )

Increment operator.

Makes the iterator point to the next segment.

Returns
The iterator before incrementing.

Definition at line 899 of file WDataSetFibers.cpp.

References m_fiberIndex, m_fibers, m_index, and m_reverse.

◆ operator,()

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.

Parameters
otherThe iterator to assign the end iterator of the range to.
Returns
The unpacker to assign a range to.

Definition at line 934 of file WDataSetFibers.cpp.

◆ operator--() [1/2]

WFiberSegmentsIterator & WFiberSegmentsIterator::operator-- ( )

Decrement operator.

Makes the iterator point to the previous segment. 3

Returns
The decremented iterator.

Definition at line 906 of file WDataSetFibers.cpp.

References m_index.

◆ operator--() [2/2]

WFiberSegmentsIterator WFiberSegmentsIterator::operator-- ( int  )

Decrement operator.

Makes the iterator point to the previous segment.

Returns
The iterator before decrementing.

Definition at line 912 of file WDataSetFibers.cpp.

References m_fiberIndex, m_fibers, m_index, and m_reverse.

◆ operator=()

WFiberSegmentsIterator & WFiberSegmentsIterator::operator= ( WFiberSegmentsIterator const &  iter)

Copy operator.

Parameters
iterThe iterator to copy from.
Returns
*this

Definition at line 878 of file WDataSetFibers.cpp.

References m_fiberIndex, m_fibers, m_index, and m_reverse.

◆ operator==()

bool WFiberSegmentsIterator::operator== ( WFiberSegmentsIterator const &  rhs) const

Compare to another segment iterator.

Parameters
rhsThe second segment iterator.
Returns
true, iff the two iterators point to the same segment of the same fiber and have the same directions.

Definition at line 919 of file WDataSetFibers.cpp.

References m_fiberIndex, m_fibers, m_index, m_reverse, and wlog::warn().

Referenced by operator!=().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ start()

WFiberPointsIterator WFiberSegmentsIterator::start ( ) const

Returns an iterator to the starting point of the segment.

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().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_fiberIndex

std::size_t WFiberSegmentsIterator::m_fiberIndex
private

The index of the fiber.

Definition at line 1287 of file WDataSetFibers.h.

Referenced by direction(), end(), operator++(), operator--(), operator=(), operator==(), and start().

◆ m_fibers

WDataSetFibers const* WFiberSegmentsIterator::m_fibers
private

The pointer to the fibers.

Definition at line 1284 of file WDataSetFibers.h.

Referenced by direction(), end(), operator++(), operator--(), operator=(), operator==(), and start().

◆ m_index

std::size_t WFiberSegmentsIterator::m_index
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().

◆ m_reverse

bool WFiberSegmentsIterator::m_reverse
private

Whether to iterate backwards.

Definition at line 1293 of file WDataSetFibers.h.

Referenced by end(), operator++(), operator--(), operator=(), operator==(), and start().


The documentation for this class was generated from the following files: