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

NeighborOffsetCirculator< NEIGHBORCODE > Class Template Reference
[Utilities to manage pixel neighborhoods]

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

#include <vigra/pixelneighborhood.hxx>

List of all members.

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 (difference_type offset) const
Direction direction () 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
NeighborOffsetCirculator operator++ (int)
NeighborOffsetCirculatoroperator++ ()
NeighborOffsetCirculatoroperator+= (difference_type d)
difference_type operator- (NeighborOffsetCirculator const &o) const
NeighborOffsetCirculator operator- (difference_type d) const
NeighborOffsetCirculator operator-- (int)
NeighborOffsetCirculatoroperator-- ()
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

NeighborOffsetCirculator& operator+= ( difference_type  d  ) 

add-assignment

NeighborOffsetCirculator& operator-= ( difference_type  d  ) 

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.

NeighborOffsetCirculator& turnTo ( Direction  d  ) 

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.8.0 (20 Sep 2011)