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

| Multi-dimensional Shapes and Array Iterators |

Shape objects and general iterators for arrays of arbitrary dimension. More...

## Classes

class | ChunkedArray< N, T >
| Interface and base class for chunked arrays. More...
struct | CoupledArrays< N, T1, T2, T3, T4, T5 >
class | CoupledHandle< T, NEXT >
struct | CoupledIteratorType< N, T1, T2, T3, T4, T5 >
class | CoupledScanOrderIterator< N, HANDLES, DIMENSION >
| Iterate over multiple images simultaneously in scan order. More...
class | GridGraph< N, DirectedTag >
| Define a grid graph in arbitrary dimensions. More...
struct | HierarchicalIteratorType< N, T1, T2, T3, T4, T5 >
class | MultiArray< N, T, A >
| Main `MultiArray` class containing the memory management. More...
class | MultiArrayShape< N >
class | MultiArrayView< N, T, StrideTag >
| Base class for, and view to, vigra::MultiArray. More...
class | MultiCoordinateIterator< N >
| Iterate over a virtual array where each element contains its coordinate. More...
class | MultiIterator< N, T, REFERENCE, POINTER >
| A multi-dimensional hierarchical iterator to be used with vigra::MultiArrayView if it is not strided. More...
class | StridedMultiIterator< N, T, REFERENCE, POINTER >
| A multi-dimensional hierarchical iterator to be used with vigra::MultiArrayView if it is not strided. More...
class | StridedScanOrderIterator< N, V, REFERENCE, POINTER >
| Sequential iterator for MultiArrayView. More...

## Typedefs

typedef std::ptrdiff_t | MultiArrayIndex
typedef MultiArrayShape< 1 >::type | Shape1
| shape type for MultiArray<1, T>
typedef MultiArrayShape< 2 >::type | Shape2
| shape type for MultiArray<2, T>
typedef MultiArrayShape< 3 >::type | Shape3
| shape type for MultiArray<3, T>
typedef MultiArrayShape< 4 >::type | Shape4
| shape type for MultiArray<4, T>
typedef MultiArrayShape< 5 >::type | Shape5
| shape type for MultiArray<5, T>

## Enumerations

enum | MultiArrayInitializationTag { LinearSequence }
| Initialize a MultiArray in a standard way. More...
enum | NeighborhoodType { DirectNeighborhood =0, IndirectNeighborhood =1 }
| Choose the neighborhood system in a dimension-independent way. More...

## Functions

template<int N>
CoupledIteratorType< N >::type | createCoupledIterator (TinyVector< MultiArrayIndex, N > const &shape)
template<unsigned int N1, class T1 , class S1 >
CoupledIteratorType< N1, T1 >::type | createCoupledIterator (MultiArrayView< N1, T1, S1 > const &m1)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 >
CoupledIteratorType< N1, T1, T2 >::type | createCoupledIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 >
CoupledIteratorType< N1, T1, T2, T3 >::type | createCoupledIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 , unsigned int N4, class T4 , class S4 >
CoupledIteratorType< N1, T1, T2, T3, T4 >::type | createCoupledIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3, MultiArrayView< N4, T4, S4 > const &m4)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 , unsigned int N4, class T4 , class S4 , unsigned int N5, class T5 , class S5 >
CoupledIteratorType< N1, T1, T2, T3, T4, T5 >::type | createCoupledIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3, MultiArrayView< N4, T4, S4 > const &m4, MultiArrayView< N5, T5, S5 > const &m5)
template<int N>
HierarchicalIteratorType< N >::type | createHierarchicalIterator (TinyVector< MultiArrayIndex, N > const &shape)
template<unsigned int N1, class T1 , class S1 >
HierarchicalIteratorType< N1, T1 >::type | createHierarchicalIterator (MultiArrayView< N1, T1, S1 > const &m1)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 >
HierarchicalIteratorType< N1, T1, T2 >::type | createHierarchicalIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 >
HierarchicalIteratorType< N1, T1, T2, T3 >::type | createHierarchicalIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 , unsigned int N4, class T4 , class S4 >
HierarchicalIteratorType< N1, T1, T2, T3, T4 >::type | createHierarchicalIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3, MultiArrayView< N4, T4, S4 > const &m4)
template<unsigned int N1, class T1 , class S1 , unsigned int N2, class T2 , class S2 , unsigned int N3, class T3 , class S3 , unsigned int N4, class T4 , class S4 , unsigned int N5, class T5 , class S5 >
HierarchicalIteratorType< N1, T1, T2, T3, T4, T5 >::type | createHierarchicalIterator (MultiArrayView< N1, T1, S1 > const &m1, MultiArrayView< N2, T2, S2 > const &m2, MultiArrayView< N3, T3, S3 > const &m3, MultiArrayView< N4, T4, S4 > const &m4, MultiArrayView< N5, T5, S5 > const &m5)
template<unsigned int TARGET_INDEX, class Handle >
CoupledHandleCast< TARGET_INDEX, Handle >::reference | get (Handle &handle)
template<unsigned int TARGET_INDEX, class Handle >
CoupledHandleCast< TARGET_INDEX, Handle >::const_reference | get (Handle const &handle)

## Detailed Description

Shape objects and general iterators for arrays of arbitrary dimension.

## Typedef Documentation

## ◆ MultiArrayIndex

typedef std::ptrdiff_t MultiArrayIndex

Index type for a single dimension of a MultiArrayView or MultiArray.

## Enumeration Type Documentation

## ◆ MultiArrayInitializationTag

enum MultiArrayInitializationTag

Initialize a MultiArray in a standard way.

Enumerator
LinearSequence | Initialize array by a linear sequence in scan order.

## ◆ NeighborhoodType

enum NeighborhoodType

Choose the neighborhood system in a dimension-independent way.

DirectNeighborhood corresponds to 4-neighborhood in 2D and 6-neighborhood in 3D, whereas IndirectNeighborhood means 8-neighborhood in 2D and 26-neighborhood in 3D. The general formula for N dimensions are 2*N for direct neighborhood and 3^N-1 for indirect neighborhood.

Enumerator
DirectNeighborhood | use only direct neighbors
IndirectNeighborhood | use direct and indirect neighbors

## Function Documentation

## ◆ get() [1/2]

CoupledHandleCast< TARGET_INDEX, Handle >::reference get | ( | Handle & | handle | ) |

Returns reference to the element in the band of the handle with index TARGET_INDEX.

## ◆ get() [2/2]

CoupledHandleCast< TARGET_INDEX, Handle >::const_reference get | ( | Handle const & | handle | ) |

Returns a constant reference to the element in the band of the handle with index TARGET_INDEX.

## ◆ createHierarchicalIterator() [1/6]

HierarchicalIteratorType<N>::type vigra::createHierarchicalIterator | ( | TinyVector< MultiArrayIndex, N > const & | shape | ) |

Alias for vigra::CoupledIteratorType (maybe easier to remember).Returns a HierarchicalIterator from shape to iterate over coordinates.

## ◆ createHierarchicalIterator() [2/6]

HierarchicalIteratorType<N1, T1>::type vigra::createHierarchicalIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1 | ) |

Returns a HierarchicalIterator to simultaneously iterate over image m1 and its coordinates.

## ◆ createHierarchicalIterator() [3/6]

HierarchicalIteratorType<N1, T1, T2>::type vigra::createHierarchicalIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2
| ) |  |

Returns a HierarchicalIterator to simultaneously iterate over images m1, m2 and their coordinates.

## ◆ createHierarchicalIterator() [4/6]

HierarchicalIteratorType<N1, T1, T2, T3>::type vigra::createHierarchicalIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3
| ) |  |

Returns a HierarchicalIterator to simultaneously iterate over images m1, m2, m3 and their coordinates.

## ◆ createHierarchicalIterator() [5/6]

HierarchicalIteratorType<N1, T1, T2, T3, T4>::type vigra::createHierarchicalIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3,
|  | MultiArrayView< N4, T4, S4 > const & | m4
| ) |  |

Returns a HierarchicalIterator to simultaneously iterate over images m1, m2, m3, m4 and their coordinates.

## ◆ createHierarchicalIterator() [6/6]

HierarchicalIteratorType<N1, T1, T2, T3, T4, T5>::type vigra::createHierarchicalIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3,
|  | MultiArrayView< N4, T4, S4 > const & | m4,
|  | MultiArrayView< N5, T5, S5 > const & | m5
| ) |  |

Returns a HierarchicalIterator to simultaneously iterate over images m1, m2, m3, m4, m5 and their coordinates.

## ◆ createCoupledIterator() [1/6]

CoupledIteratorType<N>::type vigra::createCoupledIterator | ( | TinyVector< MultiArrayIndex, N > const & | shape | ) |

Returns a CoupledScanOrderIterator from shape to iterate over coordinates.

## ◆ createCoupledIterator() [2/6]

CoupledIteratorType<N1, T1>::type vigra::createCoupledIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1 | ) |

Returns a CoupledScanOrderIterator to simultaneously iterate over image m1 and its coordinates.

## ◆ createCoupledIterator() [3/6]

CoupledIteratorType<N1, T1, T2>::type vigra::createCoupledIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2
| ) |  |

Returns a CoupledScanOrderIterator to simultaneously iterate over images m1, m2 and their coordinates.

## ◆ createCoupledIterator() [4/6]

CoupledIteratorType<N1, T1, T2, T3>::type vigra::createCoupledIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3
| ) |  |

Returns a CoupledScanOrderIterator to simultaneously iterate over images m1, m2, m3 and their coordinates.

## ◆ createCoupledIterator() [5/6]

CoupledIteratorType<N1, T1, T2, T3, T4>::type vigra::createCoupledIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3,
|  | MultiArrayView< N4, T4, S4 > const & | m4
| ) |  |

Returns a CoupledScanOrderIterator to simultaneously iterate over images m1, m2, m3, m4 and their coordinates.

## ◆ createCoupledIterator() [6/6]

CoupledIteratorType<N1, T1, T2, T3, T4, T5>::type vigra::createCoupledIterator | ( | MultiArrayView< N1, T1, S1 > const & | m1,
|  | MultiArrayView< N2, T2, S2 > const & | m2,
|  | MultiArrayView< N3, T3, S3 > const & | m3,
|  | MultiArrayView< N4, T4, S4 > const & | m4,
|  | MultiArrayView< N5, T5, S5 > const & | m5
| ) |  |

Returns a CoupledScanOrderIterator to simultaneously iterate over images m1, m2, m3, m4, m5 and their coordinates.

© 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.0