Adobe Systems, Inc.

RandomAccessNDLocatorConcept< LOC > Struct Template Reference
[N-Dimensional Locator]

N-dimensional locator over immutable values. More...

#include <gil_concept.hpp>

List of all members.


Public Member Functions

void constraints ()

Public Attributes

LOC loc

Detailed Description

template<typename LOC>
struct RandomAccessNDLocatorConcept< LOC >

template <typename LOC>
concept RandomAccessNDLocatorConcept : ValueType<LOC> {    
    typename value_type;        // value over which the locator navigates
    typename reference;         // result of dereferencing
    typename difference_type; where PointNDConcept<difference_type>; // return value of operator-.
    typename const_t;           // same as LOC, but operating over immutable values
    typename cached_location_t; // type to store relative location (for efficient repeated access)
    typename domain_t = value_type;
    typename point_t  = difference_type;
    
    static const size_t num_dimensions; // dimensionality of the locator
    where num_dimensions = point_t::num_dimensions;
    
    // The difference_type and iterator type along each dimension. The iterators may only differ in 
    // difference_type. Their value_type must be the same as this_type::value_type
    template <size_t D> struct axis {
        typename coord_t = point_t::axis<D>::coord_t;
        typename iterator; where RandomAccessIteratorConcept<iterator>; // iterator along N-th axis.
    };
    
    LOC& operator+=(const difference_type&);
    LOC& operator-=(const difference_type&);
    LOC operator+(const difference_type&) const;
    LOC operator-(const difference_type&) const;
    
    reference operator*() const;
    reference operator[](const difference_type&) const;
 
    // Storing relative location for faster repeated access and accessing it   
    cached_location_t LOC::cache_location(const difference_type&) const;
    reference operator[](const cached_location_t&) const;
    
    // Accessing iterators along a given dimension at the current location or at a given offset
    template <size_t D> axis<D>::iterator&       LOC::axis_iterator();
    template <size_t D> axis<D>::iterator const& LOC::axis_iterator() const;
    template <size_t D> axis<D>::iterator        LOC::axis_iterator(const difference_type&) const;
};

Definition at line 1043 of file gil_concept.hpp.

Copyright © 2006 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google