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

| RestrictedNeighborhoodCirculator Class Template Reference |
--- | --- | ---

Circulator that walks around a given location in a given image, unsing a restricted neighborhood. More...

`#include "vigra/pixelneighborhood.hxx"`

Inheritance diagram for RestrictedNeighborhoodCirculator:

List of all members.

## Public Types

typedef IMAGEITERATOR | base_type
typedef NEIGHBORCODE | NeighborCode
typedef BaseType::value_type | value_type
typedef BaseType::Direction | Direction
typedef BaseType::reference | reference
typedef BaseType::index_reference | index_reference
typedef BaseType::pointer | pointer
typedef BaseType::difference_type | difference_type
typedef BaseType::iterator_category | iterator_category

## Public Methods

| RestrictedNeighborhoodCirculator (IMAGEITERATOR const &center=IMAGEITERATOR(), AtImageBorder atBorder=NotAtBorder)
RestrictedNeighborhoodCirculator & | operator++ ()
RestrictedNeighborhoodCirculator | operator++ (int)
RestrictedNeighborhoodCirculator & | operator-- ()
RestrictedNeighborhoodCirculator | operator-- (int)
RestrictedNeighborhoodCirculator & | operator+= (difference_type d)
RestrictedNeighborhoodCirculator & | operator-= (difference_type d)
RestrictedNeighborhoodCirculator | operator+ (difference_type d) const
RestrictedNeighborhoodCirculator | operator- (difference_type d) const
bool | operator== (RestrictedNeighborhoodCirculator const &rhs) const
bool | operator!= (RestrictedNeighborhoodCirculator const &rhs) const
difference_type | operator- (RestrictedNeighborhoodCirculator const &rhs) const
reference | operator * () const
pointer | operator-> () const
base_type const & | base () const
base_type | center () const
Direction | direction () const
unsigned int | directionBit () const
Diff2D const & | diff () const
bool | isDiagonal () const

## Detailed Description

### template<class IMAGEITERATOR, class NEIGHBORCODE>
class vigra::RestrictedNeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE >

Circulator that walks around a given location in a given image, unsing a restricted neighborhood.

This circulator behaves essentially like vigra::NeighborhoodCirculator, but can also be used near the image border, where some of the neighbor points would be outside the image und must not be accessed. The template parameters define the kind of neighborhood used (four or eight) and the underlying image, whereas the required neighbirhood restriction is given by the last constructur argument. This below for typical usage.

The access functions return the value of the current neighbor pixel. Use `center()` to access the center pixel of the neighborhood.

Usage:

#include "vigra/pixelneighborhood.hxx"
Namespace: vigra

        BImage::traverser upperleft(...), lowerright(...);

        int width  = lowerright.x - upperleft.x;
        int height = lowerright.y - upperleft.y;

        for(int y=0; y<height; ++y, ++upperleft.y)
        {
            BImage::traverser ix = upperleft;
            for(int x=0; x<width; ++x, ++ix.x)
            {
                // use FourNeighborCode instead of EightNeighborCode for 4-neighborhood
                RestrictedNeighborhoodCirculator<BImage::traverser, EightNeighborCode>
                               circulator(ix, isAtImageBorder(x, y, width, height)),
                               end(circulator);
                do
                {
                    ... // do something with the circulator
                }
                while(++circulator != end); // out-of-range pixels will be automatically skipped
            }
        }

## Member Typedef Documentation

typedef IMAGEITERATOR base_type

| type of the underlying image iterator Reimplemented from NeighborhoodCirculator.

typedef BaseType::difference_type difference_type

| the circulator's difference type (argument type of `circ[diff]`) Reimplemented from NeighborhoodCirculator.

typedef BaseType::Direction Direction

| type of the direction code Reimplemented from NeighborhoodCirculator.

typedef BaseType::index_reference index_reference

| the circulator's index reference type (return type of `circ[n]`) Reimplemented from NeighborhoodCirculator.

typedef BaseType::iterator_category iterator_category

| the circulator tag (random_access_circulator_tag) Reimplemented from NeighborhoodCirculator.

typedef NEIGHBORCODE NeighborCode

| type of the used neighbor code Reimplemented from NeighborhoodCirculator.

typedef BaseType::pointer pointer

| the circulator's pointer type (return type of `operator->`) Reimplemented from NeighborhoodCirculator.

typedef BaseType::reference reference

| the circulator's reference type (return type of `*circ`) Reimplemented from NeighborhoodCirculator.

typedef BaseType::value_type value_type

| the circulator's value type Reimplemented from NeighborhoodCirculator.

## Constructor & Destructor Documentation

RestrictedNeighborhoodCirculator | ( | IMAGEITERATOR const & | center = IMAGEITERATOR(),
|  | AtImageBorder | atBorder = NotAtBorder
| ) | `[inline]`

| Construct circulator with given `center` pixel, using the restricted neighborhood given by atBorder.

## Member Function Documentation

base_type const& base | ( |  | ) | const`[inline]`

| Get the base iterator for the current neighbor. Reimplemented from NeighborhoodCirculator.

base_type center | ( |  | ) | const`[inline]`

| Get the base iterator for the center of the circulator. Reimplemented from NeighborhoodCirculator.

Diff2D const& diff | ( |  | ) | const`[inline]`

| Get the difference vector (Diff2D) from the center to the current neighbor. Reimplemented from NeighborhoodCirculator.

Direction direction | ( |  | ) | const`[inline]`

| Get the current direction. Reimplemented from NeighborhoodCirculator.

unsigned int directionBit | ( |  | ) | const`[inline]`

| Get the current direction bit. Reimplemented from NeighborhoodCirculator.

bool isDiagonal | ( |  | ) | const`[inline]`

| Is the current neighbor a diagonal neighbor? Reimplemented from NeighborhoodCirculator.

reference operator * | ( |  | ) | const`[inline]`

| dereference Reimplemented from NeighborhoodCirculator.

bool operator!= | ( | RestrictedNeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & | rhs | ) | const`[inline]`

| inequality

RestrictedNeighborhoodCirculator operator+ | ( | difference_type | d | ) | const`[inline]`

| addition Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator operator++ | ( | int |  | ) | `[inline]`

| pre-decrement Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator& operator++ | ( |  | ) | `[inline]`

| pre-increment Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator& operator+= | ( | difference_type | d | ) | `[inline]`

| add-assignment Reimplemented from NeighborhoodCirculator.

difference_type operator- | ( | RestrictedNeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & | rhs | ) | const`[inline]`

| subtraction

RestrictedNeighborhoodCirculator operator- | ( | difference_type | d | ) | const`[inline]`

| subtraction Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator operator-- | ( | int |  | ) | `[inline]`

| post-decrement Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator& operator-- | ( |  | ) | `[inline]`

| post-increment Reimplemented from NeighborhoodCirculator.

RestrictedNeighborhoodCirculator& operator-= | ( | difference_type | d | ) | `[inline]`

| subtract-assignment Reimplemented from NeighborhoodCirculator.

pointer operator-> | ( |  | ) | const`[inline]`

| member access Reimplemented from NeighborhoodCirculator.

bool operator== | ( | RestrictedNeighborhoodCirculator< IMAGEITERATOR, NEIGHBORCODE > const & | rhs | ) | const`[inline]`

| equality

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

- vigra/pixelneighborhood.hxx

© Ullrich Köthe (koethe@informatik.uni-hamburg.de) Cognitive Systems Group, University of Hamburg, Germany | html generated using doxygen and Python VIGRA 1.4.0 (21 Dec 2005)