Public Types | Public Member Functions | Public Attributes | Static Public Attributes
ash::hashgrid::navigator Struct Reference

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

#include <ash/impl/hashgrid.h>

Inherits ash::grid_navigator< Grid, Itr, Mod, _D >.

List of all members.

Public Types

typedef Mod< typename
Grid::node_type * >::type 
node_ptr
typedef Mod< Grid * >::type box_ptr
typedef Grid box_type
typedef Grid::key_type key_type
typedef Grid::morton_type morton_type
typedef Grid::pcoord_type pcoord_type
typedef Grid::point_type point_type
typedef
geometric_axis_iterator
< grid_navigator, AXIS_X > 
x_type
 The interface type for x-axis iteration.
typedef
geometric_axis_iterator
< grid_navigator, AXIS_Y > 
y_type
 The interface type for y-axis iteration.
Iterator Traits
typedef Grid::value_type value_type
typedef Mod< value_type * >::type pointer
typedef Mod< value_type & >::type reference
typedef Grid::size_type size_type
typedef Grid::difference_type difference_type
typedef void iterator_category

Public Member Functions

grid_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 ()
void _go (uint8 l)
Comparison Operators

Templated so we can compare const and mutable versions.

template<class I , template< class > class M>
bool operator== (grid_navigator< Grid, I, M, D > const &nav) const
 Equality operator.
template<class I , template< class > class M>
bool operator== (graph_iterator< typename Grid::_Base, I, M > const &itr) const
 Equality operator - iterator.
template<class I , template< class > class M>
bool operator!= (grid_navigator< Grid, I, M, D > const &nav) const
 Inequality operator.
template<class I , template< class > class M>
bool operator!= (graph_iterator< typename Grid::_Base, 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.
node_ptr _node
box_ptr _M_box

Static Public Attributes

static const DIM D = DIM_2D
static const size_type end = static_cast< typename Grid::size_type >(-1)

Constructors/Destructors

We use the default copy constructor.

We use the default destructor.

 navigator ()
 Default constructor.
 navigator (navigator_base const &nav)
 Conversion constructor - base class.
 navigator (iterator_base const &itr)
 Conversion constructor - iterator.

Detailed Description

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

This is conversion-constructable from an iterator, so any function which returns an iterator can also give you a navigator.

Concept: ash::hash_grid

Concepts:
ash::grid_navigator

Member Typedef Documentation

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

The interface type for x-axis iteration.

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

The interface type for y-axis iteration.


Constructor & Destructor Documentation

Default constructor.

ash::hashgrid::navigator::navigator ( navigator_base const &  nav) [inline]

Conversion constructor - base class.

ash::hashgrid::navigator::navigator ( iterator_base const &  itr) [inline]

Conversion constructor - iterator.


Member Function Documentation

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
grid_navigator& ash::grid_navigator< Grid, 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 Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
template<class I , template< class > class M>
bool ash::grid_navigator< Grid, Itr, Mod, _D >::operator!= ( grid_navigator< Grid, I, M, D > const &  nav) const [inline, inherited]

Inequality operator.

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
template<class I , template< class > class M>
bool ash::grid_navigator< Grid, Itr, Mod, _D >::operator!= ( graph_iterator< typename Grid::_Base, I, M > const &  itr) const [inline, inherited]

Inequality operator - iterator.

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
template<class I , template< class > class M>
bool ash::grid_navigator< Grid, Itr, Mod, _D >::operator== ( grid_navigator< Grid, I, M, D > const &  nav) const [inline, inherited]

Equality operator.

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
template<class I , template< class > class M>
bool ash::grid_navigator< Grid, Itr, Mod, _D >::operator== ( graph_iterator< typename Grid::_Base, I, M > const &  itr) const [inline, inherited]

Equality operator - iterator.

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
bool ash::grid_navigator< Grid, 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 Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
morton_type ash::grid_navigator< Grid, Itr, Mod, _D >::pos [inherited]

The current location.

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

The x-axis iteration interface.

template<class Grid, class Itr, template< typename > class Mod, DIM _D = Grid::D>
y_type ash::grid_navigator< Grid, 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