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

details Multi-dimensional Shapes and Array Iterators VIGRA

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

Classes

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  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, T, 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  
 
enum  
 
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<unsigned int TARGET_INDEX, class Handle >
CoupledHandleCast< TARGET_INDEX, Handle >::type::reference get (Handle &handle)
 
template<unsigned int TARGET_INDEX, class Handle >
CoupledHandleCast< TARGET_INDEX, Handle >::type::const_reference get (Handle const &handle)
 

Detailed Description

Shape objects and general iterators for arrays of arbitrary dimension.

Typedef Documentation

typedef std::ptrdiff_t MultiArrayIndex

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

Enumeration Type Documentation

anonymous enum

the iterator's level in the dimension hierarchy

anonymous enum

the iterator's level in the dimension hierarchy

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

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

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

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

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

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

Returns a CoupledScanOrderIterator from shape to iterate over coordinates.

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

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

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.

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.

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.

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.10.0