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

| VectorAccessor Class Template Reference |
--- | --- | ---

Accessor for items that are STL compatible vectors. More...

`#include "vigra/accessor.hxx"`

Inheritance diagram for VectorAccessor:

## Public Types

typedef VECTOR::value_type | component_type

## Public Methods

template<class ITERATOR> component_type const & | getComponent (ITERATOR const &i, int idx) const
template<class V, class ITERATOR> void | setComponent (V const &value, ITERATOR const &i, int idx) const
template<class ITERATOR, class DIFFERENCE> component_type const & | getComponent (ITERATOR const &i, DIFFERENCE const &diff, int idx) const
template<class V, class ITERATOR, class DIFFERENCE> void | setComponent (V const &value, ITERATOR const &i, DIFFERENCE const &diff, int idx) const

## Detailed Description

### template<class VECTOR>
class vigra::VectorAccessor< VECTOR >

Accessor for items that are STL compatible vectors.

It encapsulates access to a vector's access functionality.

Usage:

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

The accessor has two modes of operation:

1. Access the vector's iterator via the `begin()` and `end()` functions:

           typedef std::list<std::vector<int> > ListOfVectors;

           ListOfVectors ll;
           ...

           typedef vigra::SequenceAccessor<ListOfVectors::value_type> ListOfVectorsAccessor;
           ListOfVectorsAccessor a;
           for(ListOfVectors::iterator li = ll.begin(); li != ll.end(); ++li)
           {
               for(ListOfVectorsAccessor::iterator i = a.begin(li); i != a.end(li); ++i)
               {
                   *i = 10;
               }
           }

2. Access the vector's components via an index (internally calls the vector's `operator[]` ):

           typedef std::list<std::vector<int> > ListOfVectors;

           ListOfVectors ll;
           ...

           typedef vigra::SequenceAccessor<ListOfVectors::value_type> ListOfVectorsAccessor;
           ListOfVectorsAccessor a;
           for(ListOfVectors::iterator li = ll.begin(); li != ll.end(); ++li)
           {
               for(int i = 0; i != a.size(li); ++i)
               {
                   a.setComponent(10, li, i);
               }
           }

Required Interface:

        VECTOR v;
        VECTOR::iterator i;
        value_type d;
        int index;

        d = v[index];
        v[index] = d;
        i = v.begin();
        i = v.end();
        v.size();

## Member Typedef Documentation

typedef VECTOR::value_type component_type

| the vector's value_type Reimplemented from SequenceAccessor< VECTOR >. Reimplemented in RGBAccessor.

## Member Function Documentation

component_type const& getComponent | ( | ITERATOR const & | i,
|  | DIFFERENCE const & | diff,
|  | int | idx
| ) | const`[inline]`

| Read the component data at given vector index at an offset of given iterator position

component_type const& getComponent | ( | ITERATOR const & | i,
|  | int | idx
| ) | const`[inline]`

| Read the component data at given vector index at given iterator position

void setComponent | ( | V const & | value,
|  | ITERATOR const & | i,
|  | DIFFERENCE const & | diff,
|  | int | idx
| ) | const`[inline]`

| Set the component data at given vector index at an offset of given iterator position. The type `V` of the passed in `value` is automatically converted to `component_type`. In case of a conversion floating point -> intergral this includes rounding and clipping.

void setComponent | ( | V const & | value,
|  | ITERATOR const & | i,
|  | int | idx
| ) | const`[inline]`

| Set the component data at given vector index at given iterator position. The type `V` of the passed in `value` is automatically converted to `component_type`. In case of a conversion floating point -> intergral this includes rounding and clipping.

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

- vigra/accessor.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)