[ VIGRA Homepage |
Class Index |
Function Index |
File Index |
Main Page ]
|
NeighborhoodCirculator Class Template Reference
|
 |
Circulator that walks around a given location in a given image.
More...
#include "vigra/pixelneighborhood.hxx"
template<class IMAGEITERATOR, class NEIGHBORCODE>
class vigra::NeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE >
Circulator that walks around a given location in a given image.
The template parameters define the kind of neighborhood used and the underlying image, e.g.
NeighborhoodCirculator<BImage::traverser, EightNeighborCode> eight_circulator(image.upperLeft()+Diff2D(2,2));
NeighborhoodCirculator<BImage::traverser, FourNeighborCode> four_circulator(image.upperLeft()+Diff2D(2,2));
The access functions return the value of the current neighbor pixel. Use center()
to access the center pixel of the neighborhood. The center can be changed by calling moveCenterToNeighbor()
or swapCenterNeighbor()
.
#include "vigra/pixelneighborhood.hxx"
Namespace: vigra
Member Typedef Documentation
typedef IMAGEITERATOR base_type
|
|
|
type of the underlying image iterator |
typedef NEIGHBOROFFSETCIRCULATOR::difference_type difference_type
|
|
|
the circulator's difference type (argument type of circ[diff] ) |
typedef NEIGHBORCODE::Direction Direction
|
|
|
type of the direction code |
typedef IMAGEITERATOR::index_reference index_reference
|
|
|
the circulator's index reference type (return type of circ[n] ) |
typedef NEIGHBOROFFSETCIRCULATOR::iterator_category iterator_category
|
|
|
the circulator tag (random_access_circulator_tag) |
typedef NEIGHBORCODE NeighborCode
|
|
|
type of the used neighbor code |
typedef IMAGEITERATOR::pointer pointer
|
|
|
the circulator's pointer type (return type of operator-> ) |
typedef IMAGEITERATOR::reference reference
|
|
|
the circulator's reference type (return type of *circ ) |
typedef IMAGEITERATOR::value_type value_type
|
|
|
the circulator's value type |
Constructor & Destructor Documentation
NeighborhoodCirculator |
( |
IMAGEITERATOR const & |
center = IMAGEITERATOR(), |
|
|
Direction |
d = NEIGHBOROFFSETCIRCULATOR::East |
|
) |
[inline] |
|
|
Construct circulator with given center pixel, pointing to the neighbor at the given direction d . |
Member Function Documentation
|
Get the base iterator for the current neighbor. |
|
Get the base iterator for the center of the circulator. |
Diff2D const& diff |
( |
|
) |
const [inline] |
|
|
Get the difference vector (Diff2D) from the center to the current neighbor. |
|
Get the current direction. |
bool isDiagonal |
( |
|
) |
const [inline] |
|
|
Is the current neighbor a diagonal neighbor? |
NeighborhoodCirculator& moveCenterToNeighbor |
( |
|
) |
[inline] |
|
|
Move the center in the current direction. The current neighbor becomes the new center, the direction does not change. |
bool operator!= |
( |
NeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & |
rhs |
) |
const [inline] |
|
NeighborhoodCirculator operator++ |
( |
int |
|
) |
[inline] |
|
NeighborhoodCirculator& operator++ |
( |
|
) |
[inline] |
|
difference_type operator- |
( |
NeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & |
rhs |
) |
const [inline] |
|
NeighborhoodCirculator operator-- |
( |
int |
|
) |
[inline] |
|
NeighborhoodCirculator& operator-- |
( |
|
) |
[inline] |
|
pointer operator-> |
( |
|
) |
const [inline] |
|
bool operator== |
( |
NeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & |
rhs |
) |
const [inline] |
|
NeighborhoodCirculator& swapCenterNeighbor |
( |
|
) |
[inline] |
|
|
Exchange the center with the current neighbor. Equivalent to circ.moveCenterToNeighbor().turnRound() (but shorter and more efficient). |
NeighborhoodCirculator& turnLeft |
( |
|
) |
[inline] |
|
|
Move to the direction that is 'left' relative to the current direction. This is equivalent to four_circulator++ and eight_circulator += 2 respectively. |
NeighborhoodCirculator& turnRight |
( |
|
) |
[inline] |
|
|
Move to the direction that is 'right' relative to the current direction. This is equivalent to four_circulator-- and eight_circulator -= 2 respectively. |
NeighborhoodCirculator& turnRound |
( |
|
) |
[inline] |
|
|
Move to the opposite direction of the current direction. This is equivalent to four_circulator += 2 and eight_circulator += 4 respectively. |
NeighborhoodCirculator& turnTo |
( |
Direction |
d |
) |
[inline] |
|
|
Move to the given direction. |
The documentation for this class was generated from the following file: