Public Types | Public Member Functions | Public Attributes | Static Public Attributes
ash::hashmatrix::const_navigator Struct Reference

The const type used to move around the matrix in an arbitrary manner. More...

#include <ash/impl/hashmatrix.h>

Inherits ash::matrix_navigator< Mtx, Itr, Mod, _D >.

List of all members.

Public Types

typedef Mod< Mtx * >::type container_ptr
typedef Mtx container_type
typedef Mtx::key_type key_type
typedef Mtx::morton_type morton_type
typedef Mtx::pcoord_type pcoord_type
typedef Mtx::point_type point_type
typedef
geometric_axis_iterator
< matrix_navigator, AXIS_X > 
x_type
 The interface type for x-axis iteration.
typedef
geometric_axis_iterator
< matrix_navigator, AXIS_Y > 
y_type
 The interface type for y-axis iteration.
Iterator Traits
typedef Mtx::value_type value_type
typedef Mod< value_type * >::type pointer
typedef Mod< value_type & >::type reference
typedef Mtx::size_type size_type
typedef Mtx::difference_type difference_type
typedef void iterator_category

Public Member Functions

matrix_navigator & jump (key_type const &loc)
 Go directly to an arbitrary location on the grid.
bool valid () const
 Check if the navigator is dereferenceable.
void _go (int=0)
Comparison Operators
template<class I , template< class > class M>
bool operator== (matrix_navigator< Mtx, I, M, D > const &nav) const
 Equality operator.
template<class I , template< class > class M>
bool operator== (matrix_iterator< Mtx, I, M > const &itr) const
 Equality operator - iterator.
template<class I , template< class > class M>
bool operator!= (matrix_navigator< Mtx, I, M, D > const &nav) const
 Inequality operator.
template<class I , template< class > class M>
bool operator!= (matrix_iterator< Mtx, I, M > const &itr) const
 Inequality operator - iterator.
Dereference Operators
reference operator* () const
pointer operator-> () const

Public Attributes

union {
   x_type   x
 The x-axis iteration interface.
   y_type   y
 The y-axis iteration interface.
}; 
morton_type pos
 The current location.
container_ptr _M_box
pointer _element

Static Public Attributes

static const DIM D = DIM_2D
static const size_type end = impl::matrix_keys<morton_type>::end
 Marker for the end.

Constructors/Destructors

We use the default copy constructor.

We use the default destructor.

 const_navigator ()
 Default constructor.
 const_navigator (const_navigator_base const &nav)
 Conversion constructor - base class.
 const_navigator (navigator_base const &nav)
 Conversion constructor - navigator.
 const_navigator (const_iterator_base const &itr)
 Conversion constructor - const_iterator.

Detailed Description

The const type used to move around the matrix in an arbitrary manner.

This is conversion-constructable from a const_iterator, so any function which returns a const_iterator can also give you a const_navigator.

Concept: ash::hash_matrix


Member Typedef Documentation

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
typedef void ash::matrix_navigator< Mtx, Itr, Mod, _D >::iterator_category [inherited]
Note:
This should be std::trivial_iterator_tag, which does not exist...
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
typedef geometric_axis_iterator<matrix_navigator, AXIS_X> ash::matrix_navigator< Mtx, Itr, Mod, _D >::x_type [inherited]

The interface type for x-axis iteration.

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
typedef geometric_axis_iterator<matrix_navigator, AXIS_Y> ash::matrix_navigator< Mtx, Itr, Mod, _D >::y_type [inherited]

The interface type for y-axis iteration.


Constructor & Destructor Documentation

Default constructor.

ash::hashmatrix::const_navigator::const_navigator ( const_navigator_base const &  nav) [inline]

Conversion constructor - base class.

ash::hashmatrix::const_navigator::const_navigator ( navigator_base const &  nav) [inline]

Conversion constructor - navigator.

ash::hashmatrix::const_navigator::const_navigator ( const_iterator_base const &  itr) [inline]

Conversion constructor - const_iterator.


Member Function Documentation

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
void ash::matrix_navigator< Mtx, Itr, Mod, _D >::_go ( int  = 0) [inline, inherited]
Todo:
Loki: Make protected + friend.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
matrix_navigator& ash::matrix_navigator< Mtx, Itr, Mod, _D >::jump ( key_type const &  loc) [inline, inherited]

Go directly to an arbitrary location on the grid.

Parameters:
locThe destination.
Returns:
A reference to the navigator.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
template<class I , template< class > class M>
bool ash::matrix_navigator< Mtx, Itr, Mod, _D >::operator!= ( matrix_navigator< Mtx, I, M, D > const &  nav) const [inline, inherited]

Inequality operator.

Note:
Templated so we can compare const and mutable versions.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
template<class I , template< class > class M>
bool ash::matrix_navigator< Mtx, Itr, Mod, _D >::operator!= ( matrix_iterator< Mtx, I, M > const &  itr) const [inline, inherited]

Inequality operator - iterator.

Note:
Templated so we can compare const and mutable versions.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
template<class I , template< class > class M>
bool ash::matrix_navigator< Mtx, Itr, Mod, _D >::operator== ( matrix_navigator< Mtx, I, M, D > const &  nav) const [inline, inherited]

Equality operator.

Note:
Templated so we can compare const and mutable versions.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
template<class I , template< class > class M>
bool ash::matrix_navigator< Mtx, Itr, Mod, _D >::operator== ( matrix_iterator< Mtx, I, M > const &  itr) const [inline, inherited]

Equality operator - iterator.

Note:
Templated so we can compare const and mutable versions.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
bool ash::matrix_navigator< Mtx, Itr, Mod, _D >::valid ( ) const [inline, inherited]

Check if the navigator is dereferenceable.

Returns:
True if the location is in the container.

Member Data Documentation

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
pointer ash::matrix_navigator< Mtx, Itr, Mod, _D >::_element [inherited]
Todo:
Loki: Make protected + friend.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
container_ptr ash::matrix_navigator< Mtx, Itr, Mod, _D >::_M_box [inherited]
Todo:
Loki: Make protected + friend.
template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
const size_type ash::matrix_navigator< Mtx, Itr, Mod, _D >::end = impl::matrix_keys<morton_type>::end [static, inherited]

Marker for the end.

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
morton_type ash::matrix_navigator< Mtx, Itr, Mod, _D >::pos [inherited]

The current location.

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
x_type ash::matrix_navigator< Mtx, Itr, Mod, _D >::x [inherited]

The x-axis iteration interface.

template<class Mtx, class Itr, template< typename > class Mod, DIM _D = Mtx::D>
y_type ash::matrix_navigator< Mtx, Itr, Mod, _D >::y [inherited]

The y-axis iteration interface.


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


© 2012   AshTL
Licensed under  AGPLv3
Hosted by  Get AshTL at SourceForge.net. Fast, secure and Free Open Source software downloads
Generated by  doxygen 1.7.4