Modules | Alphabetical List | Class List | Directories | File List | GIL Home Page

# RandomAccessNDImageViewConcept Struct Template Reference
[ImageViewNDLocatorConcept]

`#include <gil_concept.hpp>`

List of all members.

## Detailed Description

### template<typename View>
struct boost::gil::RandomAccessNDImageViewConcept< View >

N-dimensional view over immutable values.

    concept RandomAccessNDImageViewConcept<Regular View> {
        typename value_type;
        typename reference;       // result of dereferencing
        typename difference_type; // result of operator-(iterator,iterator) (1-dimensional!)
        typename const_t;  where RandomAccessNDImageViewConcept<View>; // same as View, but over immutable values
        typename point_t;  where PointNDConcept<point_t>; // N-dimensional point
        typename locator;  where RandomAccessNDLocatorConcept<locator>; // N-dimensional locator.
        typename iterator; where RandomAccessTraversalConcept<iterator>; // 1-dimensional iterator over all values
        typename reverse_iterator; where RandomAccessTraversalConcept<reverse_iterator>;
        typename size_type;       // the return value of size()

        // Equivalent to RandomAccessNDLocatorConcept::axis
        template <size_t D> struct axis {
            typename coord_t = point_t::axis<D>::coord_t;
            typename iterator; where RandomAccessTraversalConcept<iterator>;   // iterator along D-th axis.
            where SameType<coord_t, iterator::difference_type>;
            where SameType<iterator::value_type,value_type>;
        };

        // Defines the type of a view similar to this type, except it invokes Deref upon dereferencing
        template <PixelDereferenceAdaptorConcept Deref> struct add_deref {
            typename type;        where RandomAccessNDImageViewConcept<type>;
            static type make(const View& v, const Deref& deref);
        };

        static const size_t num_dimensions = point_t::num_dimensions;

        // Create from a locator at the top-left corner and dimensions
        View::View(const locator&, const point_type&);

        size_type        View::size()       const; // total number of elements
        reference        operator[](View, const difference_type&) const; // 1-dimensional reference
        iterator         View::begin()      const;
        iterator         View::end()        const;
        reverse_iterator View::rbegin()     const;
        reverse_iterator View::rend()       const;
        iterator         View::at(const point_t&);
        point_t          View::dimensions() const; // number of elements along each dimension
        bool             View::is_1d_traversable() const;   // can an iterator over the first dimension visit each value? I.e. are there gaps between values?

        // iterator along a given dimension starting at a given point
        template <size_t D> View::axis<D>::iterator View::axis_iterator(const point_t&) const;

        reference operator()(View,const point_t&) const;
    };

## Public Member Functions

void | constraints ()

## Public Attributes

View | view

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

- gil_concept.hpp