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

details Data Accessors VIGRA

Modules

 Accessors for FFTWComplex
 
 Accessors for OpenCL types
 
 Accessors for RGBValue
 

Classes

class  BilinearInterpolatingAccessor< ACCESSOR, VALUETYPE >
 Bilinear interpolation at non-integer positions. More...
 
class  cl_charNAccessor_COMP
 
class  FFTWRealAccessor< Real >
 
class  MultiImageAccessor2< Iter1, Acc1, Iter2, Acc2 >
 Access two images simultaneously. More...
 
class  RGBAccessor< T >
 
class  SequenceAccessor< SEQUENCE >
 Accessor for items that are STL compatible sequences. More...
 
class  StandardAccessor< VALUETYPE >
 Encapsulate access to the values an iterator points to. More...
 
class  StandardConstAccessor< VALUETYPE >
 Encapsulate read access to the values an iterator points to. More...
 
class  StandardConstValueAccessor< VALUETYPE >
 Encapsulate access to the values an iterator points to. More...
 
class  StandardValueAccessor< VALUETYPE >
 Encapsulate access to the values an iterator points to. More...
 
class  VectorAccessor< VECTOR >
 Accessor for items that are STL compatible vectors. More...
 
class  VectorComponentAccessor< VECTORTYPE >
 Accessor for one component of a vector. More...
 
class  VectorComponentValueAccessor< VECTORTYPE >
 Accessor for one component of a vector. More...
 
class  VectorElementAccessor< ACCESSOR >
 Accessor for one component of a vector. More...
 

Detailed Description

Basic templates to encapsulate access to the data of an iterator.

Data accessors are used to allow for flexible access to the data an iterator points to. When we access the data directly, we are bound to what operator*() returns, if this method exists at all. Encapsulating access in an accessor enables a better decoupling of data structures and algorithms. This paper contains a detailed description of the concept. Here is a brief list of the basic accessor requirements:

Operation Result Semantics
accessor(iter)convertible to
Accessor::value_type const &
read data at the current position of the iterator
accessor(iter, index)convertible to
Accessor::value_type const &
read data at offset index relative to iterator's current position (random-access iterator only)
accessor.set(value, iter)void write data value at the current position of the iterator (mutable iterator only)
accessor.set(value, iter, index)void write data value at offset index relative to iterator's current position (mutable random-access iterator only)
Accessor::value_type type of the data field the accessor refers to
iter is an iterator
index has the iterator's index type (Iterator::difference_type)
value is convertible to Accessor::value_type const &

The template AccessorTraits<T> can be used to find the default accessor associated with the type T, e.g.

typedef typename AccessorTraits<typename Image::value_type>::default_accessor Accessor;
typedef typename AccessorTraits<typename Image::value_type>::default_const_accessor ConstAccessor;

© 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.1 (Fri May 19 2017)