membased_2d_locator Class Template Reference
[Pixel Locators]

#include <locator.hpp>

Inheritance diagram for membased_2d_locator:

pixel_2d_locator_base< membased_2d_locator< StepIterator >, pixel_iterator_traits< StepIterator >::base_t, StepIterator > List of all members.

Detailed Description

template<typename StepIterator>
class membased_2d_locator< StepIterator >

Memory-based pixel locator

Models: PixelLocatorConcept.

The class takes a step iterator as a parameter. The step iterator provides navigation along the vertical axis while its base iterator provides horizontal navigation.

Each instantiation is optimal in terms of size and efficiency. For example, xy locator over interleaved rgb image results in a step iterator consisting of one std::ptrdiff_t for the row size and one native pointer (8 bytes total). ++locator.x() resolves to pointer increment. At the other extreme, a 2D navigation of the even pixels of a planar CMYK image results in a step iterator consisting of one std::ptrdiff_t for the doubled row size, and one step iterator consisting of one std::ptrdiff_t for the horizontal step of two and a CMYK planar_ptr consisting of 4 pointers (24 bytes). In this case ++locator.x() results in four native pointer additions.


Public Types

typedef membased_2d_locator<
typename pixel_iterator_traits<
StepIterator >::const_t
const_t
typedef membased_2d_locator<
typename pixel_iterator_traits<
StepIterator >::dynamic_step_base_t > 
dynamic_x_step_t
typedef this_t dynamic_y_step_t
typedef dynamic_x_step_t dynamic_xy_step_t
typedef dynamic_x_step_t dynamic_xy_step_transposed_t
typedef parent_t::coord_t coord_t
typedef parent_t::x_coord_t x_coord_t
typedef parent_t::y_coord_t y_coord_t
typedef parent_t::x_iterator x_iterator
typedef parent_t::y_iterator y_iterator
typedef parent_t::difference_type difference_type
typedef parent_t::reference reference
typedef std::ptrdiff_t cached_location_t

Public Member Functions

 membased_2d_locator (const StepIterator &yit)
template<typename SI>
 membased_2d_locator (const membased_2d_locator< SI > &loc, coord_t y_step)
template<typename SI>
 membased_2d_locator (const membased_2d_locator< SI > &loc, coord_t x_step, coord_t y_step, bool transpose=false)
 membased_2d_locator (x_iterator xit, std::ptrdiff_t row_bytes)
template<typename X>
 membased_2d_locator (const membased_2d_locator< X > &pl)
 membased_2d_locator (const membased_2d_locator &pl)
bool operator== (const this_t &p) const
x_iterator const & x () const
y_iterator const & y () const
x_iterator & x ()
y_iterator & y ()
x_iterator x_at (x_coord_t dx, y_coord_t dy) const
x_iterator x_at (const difference_type &d) const
this_t xy_at (x_coord_t dx, y_coord_t dy) const
this_t xy_at (const difference_type &d) const
reference operator() (x_coord_t dx, y_coord_t dy) const
reference operator[] (const difference_type &d) const
this_toperator+= (const difference_type &d)
this_toperator-= (const difference_type &d)
cached_location_t cache_location (const difference_type &d) const
cached_location_t cache_location (x_coord_t dx, y_coord_t dy) const
reference operator[] (const cached_location_t &loc) const
std::ptrdiff_t row_bytes () const
std::ptrdiff_t pix_bytestep () const
bool is_contiguous (x_coord_t width) const
std::ptrdiff_t y_distance_to (const this_t &p2, x_coord_t xDiff) const

Friends

class membased_2d_locator

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

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