[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

details NeighborOffsetCirculator< NEIGHBORCODE > Class Template Reference VIGRA

Circulator that walks around a given location. More...

#include <vigra/pixelneighborhood.hxx>

Inherits NEIGHBORCODE.

Public Types

typedef int difference_type
 
typedef NEIGHBORCODE::Direction Direction
 
typedef value_type const & index_reference
 
typedef
random_access_circulator_tag 
iterator_category
 
typedef value_type const * pointer
 
typedef value_type const & reference
 
typedef
NEIGHBORCODE::difference_type 
value_type
 

Public Member Functions

reference diff () const
 
Direction direction () const
 
Direction direction (difference_type offset) const
 
unsigned int directionBit () const
 
int dX () const
 
int dY () const
 
bool isDiagonal () const
 
 NeighborOffsetCirculator (Direction dir=NEIGHBORCODE::InitialDirection)
 
bool operator!= (NeighborOffsetCirculator const &o) const
 
reference operator* () const
 
NeighborOffsetCirculator operator+ (difference_type d) const
 
NeighborOffsetCirculatoroperator++ ()
 
NeighborOffsetCirculator operator++ (int)
 
NeighborOffsetCirculatoroperator+= (difference_type d)
 
NeighborOffsetCirculator operator- (difference_type d) const
 
difference_type operator- (NeighborOffsetCirculator const &o) const
 
NeighborOffsetCirculatoroperator-- ()
 
NeighborOffsetCirculator operator-- (int)
 
NeighborOffsetCirculatoroperator-= (difference_type d)
 
pointer operator-> () const
 
bool operator== (NeighborOffsetCirculator const &o) const
 
index_reference operator[] (difference_type d) const
 
Direction opposite () const
 
unsigned int oppositeDirectionBit () const
 
value_type relativeDiff (difference_type offset) const
 
NeighborOffsetCirculatorturnLeft ()
 
NeighborOffsetCirculatorturnRight ()
 
NeighborOffsetCirculatorturnRound ()
 
NeighborOffsetCirculatorturnTo (Direction d)
 

Static Public Member Functions

static reference diff (Direction dir)
 

Detailed Description

template<class NEIGHBORCODE>
class vigra::NeighborOffsetCirculator< NEIGHBORCODE >

Circulator that walks around a given location.

The template parameter defines the kind of neighborhood used, e.g.

NeighborOffsetCirculator<EightNeighborCode> eight_circulator;
NeighborOffsetCirculator<FourNeighborCode> four_circulator;

Since this circulator doesn't know about the pixels in any particular image, you usually don't use it directly but rather as a base class or helper for neighborhood circulators referring to a particular image (e.g. NeighborhoodCirculator)

#include <vigra/pixelneighborhood.hxx>
Namespace: vigra

Member Typedef Documentation

typedef NEIGHBORCODE::Direction Direction

return type of direction()

typedef NEIGHBORCODE::difference_type value_type

the circulator's value type

typedef value_type const& reference

the circulator's reference type (return type of *circ)

typedef value_type const& index_reference

the circulator's index reference type (return type of circ[n])

typedef value_type const* pointer

the circulator's pointer type (return type of operator->)

typedef int difference_type

the circulator's difference type (argument type of circ[diff])

typedef random_access_circulator_tag iterator_category

the circulator tag (random access iterator)

Constructor & Destructor Documentation

NeighborOffsetCirculator ( Direction  dir = NEIGHBORCODE::InitialDirection)

Create circulator referring to the given direction.

Member Function Documentation

NeighborOffsetCirculator& operator++ ( )

pre-increment

NeighborOffsetCirculator& operator-- ( )

pre-decrement

NeighborOffsetCirculator operator++ ( int  )

post-increment

NeighborOffsetCirculator operator-- ( int  )

post-decrement

add-assignment

subtract-assignment

NeighborOffsetCirculator operator+ ( difference_type  d) const

addition

NeighborOffsetCirculator operator- ( difference_type  d) const

subtraction

NeighborOffsetCirculator& turnRight ( )

Move to the direction that is 'right' relative to the current direction. This is equivalent to four_circulator– and eight_circulator -= 2 respectively.

NeighborOffsetCirculator& turnLeft ( )

Move to the direction that is 'left' relative to the current direction. This is equivalent to four_circulator++ and eight_circulator += 2 respectively.

NeighborOffsetCirculator& turnRound ( )

Move to the opposite direction of the current direction. This is equivalent to four_circulator += 2 and eight_circulator += 4 respectively.

Move to the given direction.

bool operator== ( NeighborOffsetCirculator< NEIGHBORCODE > const &  o) const

equality

bool operator!= ( NeighborOffsetCirculator< NEIGHBORCODE > const &  o) const

inequality

difference_type operator- ( NeighborOffsetCirculator< NEIGHBORCODE > const &  o) const

subtraction

reference operator* ( ) const

dereference

index_reference operator[] ( difference_type  d) const

index

pointer operator-> ( ) const

member access

reference diff ( ) const

Get offset from center to current neighbor.

static reference diff ( Direction  dir)
static

Get offset to given direction.

value_type relativeDiff ( difference_type  offset) const

Get relative distance from current neighbor to neighbor at given offset.

int dX ( ) const

X-component of diff()

int dY ( ) const

Y-component of diff()

bool isDiagonal ( ) const

Check whether current direction is a diagonal one.

Direction direction ( ) const

Get current direction.

unsigned int directionBit ( ) const

Get current direction bit.

Direction opposite ( ) const

Get opposite of current direction.

unsigned int oppositeDirectionBit ( ) const

Get opposite bit of current direction.

Direction direction ( difference_type  offset) const

Get direction code at offset of current direction.


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

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.1 (Fri May 19 2017)