[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
![]() |
StridedMultiIterator< N, T, REFERENCE, POINTER > Class Template Reference | ![]() |
A multi-dimensional hierarchical iterator to be used with vigra::MultiArrayView if it is not strided. More...
#include <vigra/multi_iterator.hxx>
A multi-dimensional hierarchical iterator to be used with vigra::MultiArrayView if it is not strided.
See Multi-dimensional Array Iterators for further documentation.
#include <vigra/multi_iterator.hxx>
Namespace: vigra
typedef StridedMultiIterator<N-1, T, REFERENCE, POINTER> base_type |
the type of the parent in the inheritance hierarchy.
typedef T value_type |
the iterator's value type
typedef REFERENCE reference |
reference type (result of operator[])
typedef const value_type& const_reference |
const reference type (result of operator[] const)
typedef POINTER pointer |
pointer type
typedef const value_type* const_pointer |
const pointer type
typedef MultiArrayShape<N>::type multi_difference_type |
multi difference type (used for offsetting along all axes simultaneously)
typedef MultiArrayIndex difference_type |
difference type (used for offsetting)
the StridedMultiIterator for the next lower dimension.
typedef StridedMultiIterator<1, T, REFERENCE, POINTER> iterator |
the 1-dimensional iterator for this iterator hierarchy (result of iteratorForDimension()).
typedef multi_dimensional_traverser_tag iterator_category |
the iterator tag (image traverser)
anonymous enum |
the iterator's level in the dimension hierarchy
default constructor.
StridedMultiIterator | ( | pointer | ptr, |
const difference_array_type & | stride, | ||
const difference_array_type & | shape | ||
) |
construct from pointer, strides (offset of a sample to the next) for every dimension, and the shape.
void operator++ | ( | ) |
prefix-increment the iterator in its current dimension
void operator-- | ( | ) |
prefix-decrement the iterator in its current dimension
StridedMultiIterator operator++ | ( | int | ) |
postfix-increment the iterator in its current dimension
StridedMultiIterator operator-- | ( | int | ) |
postfix-decrement the iterator in its current dimension
StridedMultiIterator& operator+= | ( | difference_type | n | ) |
increment the iterator in its current dimension by the given value.
StridedMultiIterator& operator+= | ( | multi_difference_type const & | d | ) |
increment the iterator in all dimensions by the given offset.
StridedMultiIterator& operator-= | ( | difference_type | n | ) |
decrement the iterator in its current dimension by the given value.
StridedMultiIterator& operator-= | ( | multi_difference_type const & | d | ) |
decrement the iterator in all dimensions by the given offset.
StridedMultiIterator operator+ | ( | difference_type | n | ) | const |
addition within current dimension
StridedMultiIterator operator+ | ( | multi_difference_type const & | d | ) | const |
addition along all dimensions
difference_type operator- | ( | StridedMultiIterator< N, T, REFERENCE, POINTER > const & | d | ) | const |
difference of two iterators in the current dimension. The result of this operation is undefined if the iterator doesn't point to element 0 in all dimensions below its current dimension.
StridedMultiIterator operator- | ( | difference_type | n | ) | const |
subtraction within current dimension
StridedMultiIterator operator- | ( | multi_difference_type const & | d | ) | const |
subtraction along all dimensions
reference operator* | ( | ) | const |
derefenrence item
pointer operator-> | ( | ) | const |
call method of current item
bool operator!= | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
inequality. True if iterators reference different items.
bool operator== | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
equality. True if iterators reference the same items.
bool operator< | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
less than.
bool operator<= | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
less or equal.
bool operator> | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
greater than.
bool operator>= | ( | const StridedMultiIterator< N, T, REFERENCE, POINTER > & | rhs | ) | const |
greater or equal.
reference operator[] | ( | difference_type | n | ) | const |
access the array element at the given offset in the current dimension.
reference operator[] | ( | multi_difference_type const & | d | ) | const |
access the array element at the given offset.
Return the (N-1)-dimensional multi-iterator that points to the first (N-1)-dimensional subarray of the N-dimensional array this iterator is referring to. The result is only valid if this iterator refers to location 0 in all dimensions below its current dimension N, otherwise it is undefined. Usage:
StridedMultiIterator<2, int> outer = ...; // this iterator StridedMultiIterator<2, int>::next_type inner = outer.begin(); for(; inner != outer.end(); ++inner) { // manipulate current 1D subimage }
Return the (N-1)-dimensional multi-iterator that points beyond the last (N-1)-dimensional subarray of the N-dimensional array this iterator is referring to. The result is only valid if this iterator refers to location 0 in all dimensions below its current dimension N, otherwise it is undefined.
iterator iteratorForDimension | ( | unsigned int | d | ) | const |
Get a 1-dimensional, STL-compatible iterator for the given dimension, pointing to the current element of this
. Usage:
StridedMultiIterator<3, int> outer = ...; // this iterator StridedMultiIterator<3, int>::iterator i = outer.iteratorForDimension(1); StridedMultiIterator<3, int>::iterator end = i + height; for(; i != end; ++i) { // go down the current column starting at the location of 'outer' }
StridedMultiIterator<K+1, T, REFERENCE, POINTER>& dim | ( | ) |
Return the multi-iterator that operates on dimension K in order to manipulate this dimension directly. Usage:
StridedMultiIterator<3, int> i3 = ...; i3.template dim<2>()++; // increment outer dimension i3.template dim<0>()++; // increment inner dimension
For convenience, the same functionality is also available as dim0()
, dim1()
etc. up to dim4()
:
StridedMultiIterator<3, int> i3 = ...; i3.dim2()++; // increment outer dimension i3.dim0()++; // increment inner dimension
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|