DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Private Attributes
DGtal::HyperRectDomain_Iterator< TPoint > Class Template Reference

#include <HyperRectDomain_Iterator.h>

Collaboration diagram for DGtal::HyperRectDomain_Iterator< TPoint >:
Collaboration graph
[legend]

Public Types

typedef
std::bidirectional_iterator_tag 
iterator_category
typedef TPoint value_type
typedef ptrdiff_t difference_type
typedef TPoint * pointer
typedef TPoint & reference
typedef TPoint::Dimension Dimension

Public Member Functions

 HyperRectDomain_Iterator (const TPoint &p, const TPoint &lower, const TPoint &upper)
const TPoint & operator* () const
TPoint & operator* ()
bool operator== (const HyperRectDomain_Iterator< TPoint > &it) const
bool operator!= (const HyperRectDomain_Iterator< TPoint > &aIt) const
void nextLexicographicOrder ()
HyperRectDomain_Iterator
< TPoint > & 
operator++ ()
HyperRectDomain_Iterator< TPoint > operator++ (int)
void prevLexicographicOrder ()
HyperRectDomain_Iterator
< TPoint > & 
operator-- ()
HyperRectDomain_Iterator< TPoint > operator-- (int)

Private Attributes

TPoint myPoint
TPoint mylower
TPoint myupper
Dimension myCurrentPos

Detailed Description

template<typename TPoint>
class DGtal::HyperRectDomain_Iterator< TPoint >

Description of class 'HyperRectDomain_Iterator'

Aim:

Definition at line 158 of file HyperRectDomain_Iterator.h.


Member Typedef Documentation

template<typename TPoint>
typedef ptrdiff_t DGtal::HyperRectDomain_Iterator< TPoint >::difference_type

Definition at line 163 of file HyperRectDomain_Iterator.h.

template<typename TPoint>
typedef TPoint::Dimension DGtal::HyperRectDomain_Iterator< TPoint >::Dimension

Definition at line 166 of file HyperRectDomain_Iterator.h.

template<typename TPoint>
typedef std::bidirectional_iterator_tag DGtal::HyperRectDomain_Iterator< TPoint >::iterator_category

Definition at line 161 of file HyperRectDomain_Iterator.h.

template<typename TPoint>
typedef TPoint* DGtal::HyperRectDomain_Iterator< TPoint >::pointer

Definition at line 164 of file HyperRectDomain_Iterator.h.

template<typename TPoint>
typedef TPoint& DGtal::HyperRectDomain_Iterator< TPoint >::reference

Definition at line 165 of file HyperRectDomain_Iterator.h.

template<typename TPoint>
typedef TPoint DGtal::HyperRectDomain_Iterator< TPoint >::value_type
Todo:
construct a RANDOM-ACCESS iterator

Definition at line 162 of file HyperRectDomain_Iterator.h.


Constructor & Destructor Documentation

template<typename TPoint>
DGtal::HyperRectDomain_Iterator< TPoint >::HyperRectDomain_Iterator ( const TPoint &  p,
const TPoint &  lower,
const TPoint &  upper 
)
inline

Definition at line 169 of file HyperRectDomain_Iterator.h.

: myPoint( p ), mylower( lower ), myupper( upper ), myCurrentPos( 0 )
{
ASSERT( lower <= upper );
ASSERT( lower <= p && p <= upper );
}

Member Function Documentation

template<typename TPoint>
void DGtal::HyperRectDomain_Iterator< TPoint >::nextLexicographicOrder ( )
inline

Implements the next() method to scan the domain points dimension by dimension (lexicographic order).

Definition at line 209 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::myCurrentPos, DGtal::HyperRectDomain_Iterator< TPoint >::mylower, DGtal::HyperRectDomain_Iterator< TPoint >::myPoint, and DGtal::HyperRectDomain_Iterator< TPoint >::myupper.

Referenced by DGtal::HyperRectDomain_Iterator< TPoint >::operator++().

{
if (( myCurrentPos < TPoint::dimension - 1 ) &&
{
do
{
myCurrentPos++;
if ( myCurrentPos < TPoint::dimension )
}
while (( myCurrentPos < TPoint::dimension - 1 ) &&
( myPoint[myCurrentPos] > myupper[ myCurrentPos ] ) );
myCurrentPos = 0;
}
}
template<typename TPoint>
bool DGtal::HyperRectDomain_Iterator< TPoint >::operator!= ( const HyperRectDomain_Iterator< TPoint > &  aIt) const
inline

Operator !=

Definition at line 200 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::myPoint.

{
return ( myPoint!=aIt.myPoint );
}
template<typename TPoint>
const TPoint& DGtal::HyperRectDomain_Iterator< TPoint >::operator* ( ) const
inline
template<typename TPoint>
TPoint& DGtal::HyperRectDomain_Iterator< TPoint >::operator* ( )
inline
template<typename TPoint>
HyperRectDomain_Iterator<TPoint>& DGtal::HyperRectDomain_Iterator< TPoint >::operator++ ( )
inline

Operator ++ (++it)

Definition at line 231 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::nextLexicographicOrder().

{
return *this;
}
template<typename TPoint>
HyperRectDomain_Iterator<TPoint> DGtal::HyperRectDomain_Iterator< TPoint >::operator++ ( int  )
inline
template<typename TPoint>
HyperRectDomain_Iterator<TPoint>& DGtal::HyperRectDomain_Iterator< TPoint >::operator-- ( )
inline

Operator – (–it)

Definition at line 275 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::prevLexicographicOrder().

{
return *this;
}
template<typename TPoint>
HyperRectDomain_Iterator<TPoint> DGtal::HyperRectDomain_Iterator< TPoint >::operator-- ( int  )
inline
template<typename TPoint>
bool DGtal::HyperRectDomain_Iterator< TPoint >::operator== ( const HyperRectDomain_Iterator< TPoint > &  it) const
inline

Operator ==

Definition at line 191 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::myPoint.

{
return ( myPoint==it.myPoint );
}
template<typename TPoint>
void DGtal::HyperRectDomain_Iterator< TPoint >::prevLexicographicOrder ( )
inline

Implements the prev() method to scan the domain points dimension by dimension (lexicographic order).

Definition at line 252 of file HyperRectDomain_Iterator.h.

References DGtal::HyperRectDomain_Iterator< TPoint >::myCurrentPos, DGtal::HyperRectDomain_Iterator< TPoint >::mylower, DGtal::HyperRectDomain_Iterator< TPoint >::myPoint, and DGtal::HyperRectDomain_Iterator< TPoint >::myupper.

Referenced by DGtal::HyperRectDomain_Iterator< TPoint >::operator--().

{
if (( myCurrentPos < TPoint::dimension - 1 ) &&
{
do
{
if ( myCurrentPos < TPoint::dimension )
}
while (( myCurrentPos < TPoint::dimension - 1 ) &&
( myPoint[ myCurrentPos ] < mylower[ myCurrentPos ] ) );
myCurrentPos = 0;
}
}

Field Documentation

template<typename TPoint>
Dimension DGtal::HyperRectDomain_Iterator< TPoint >::myCurrentPos
private
template<typename TPoint>
TPoint DGtal::HyperRectDomain_Iterator< TPoint >::mylower
private
template<typename TPoint>
TPoint DGtal::HyperRectDomain_Iterator< TPoint >::myPoint
private
template<typename TPoint>
TPoint DGtal::HyperRectDomain_Iterator< TPoint >::myupper
private

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