13 #ifndef SPATIAL_BIDIRECTIONAL_HPP 
   14 #define SPATIAL_BIDIRECTIONAL_HPP 
   16 #include "spatial_node.hpp" 
   32     template <
typename Link, 
typename Rank>
 
   42       typedef typename Link::value_type*           
pointer;
 
  107       const rank_type& 
rank()
 const { 
return static_cast<const Rank&
>(*this); }
 
  113       { 
return static_cast<const Rank&
>(*this)(); }
 
  144     template <
typename Link, 
typename Rank>
 
  154       typedef const typename Link::value_type*     
pointer;
 
  212       rank_type 
rank()
 const { 
return static_cast<const Rank
>(*this); }
 
  219       { 
return static_cast<const Rank&
>(*this)(); }
 
  243 #endif // SPATIAL_BIDIRECTIONAL_HPP 
Bidirectional_iterator(const Rank &rank_, node_ptr node_, dimension_type node_dim_)
Initialize the node at construction time. 
 
reference operator*()
Returns the reference to the value pointed to by the iterator. 
 
A bidirectional iterator traversing all node in the tree in inorder traversal. 
 
A bidirectional iterator traversing all node in the tree in inorder traversal. 
 
dimension_type dimension() const 
Return the current number of dimensions given by the Rank of the iterator. 
 
Link::const_node_ptr node_ptr
The type for the node pointed to by the iterator. 
 
bool operator!=(const Const_node_iterator< Link > &x) const 
A bidirectional iterator can be compared for inequality with a node iterator if they work on identica...
 
node_ptr node
The node pointed to by the iterator. 
 
const Link::value_type * pointer
The pointer type of the object pointed to by the iterator. 
 
rank_type rank() const 
Return the current Rank type used by the iterator. 
 
const rank_type & rank() const 
Return the current Rank type used by the iterator. 
 
Bidirectional_iterator()
Build an uninitialized iterator. 
 
node_ptr node
The pointer to the current node. 
 
Link::value_type * pointer
The pointer type of the object pointed to by the iterator. 
 
dimension_type dimension() const 
Return the number of dimensions stored by the Rank of the iterator. 
 
std::ptrdiff_t difference_type
The difference_type returned by the distance between 2 iterators. 
 
node_ptr node
The pointer to the current node. 
 
Link::invariant_category invariant_category
The invariant category of the the iterator. 
 
Rank rank_type
The type of rank used by the iterator. 
 
const Kdtree_link< Key, Value >::value_type & const_value(const Node< Kdtree_link< Key, Value > > *node)
This function converts a pointer on a node into a value for a Kdtree_link type. 
 
reference operator*()
Returns the reference to the value pointed to by the iterator. 
 
dimension_type node_dim
The dimension of the current node. 
 
const Link::value_type & reference
The reference type of the object pointed to by the iterator. 
 
Rank rank_type
The type of rank used by the iterator. 
 
mutate< typename Link::value_type >::type value_type
The value_type can receive a copy of the reference pointed to be the iterator. 
 
Link::value_type & reference
The reference type of the object pointed to by the iterator. 
 
Link::node_ptr node_ptr
The type for the node pointed to by the iterator. 
 
std::size_t dimension_type
Defines the type for the dimension as being a size. 
 
mutate< typename Link::value_type >::type value_type
The value_type can receive a copy of the reference pointed to be the iterator. 
 
bool operator==(const Const_node_iterator< Link > &x) const 
A bidirectional iterator can be compared with a node iterator if they work on identical linking modes...
 
Link::invariant_category invariant_category
The invariant category of the the iterator. 
 
Const_bidirectional_iterator()
Build an uninitialized iterator. 
 
Const_bidirectional_iterator(const Rank &rank_, node_ptr node_, dimension_type node_dim_)
Initialize the node at construction time. 
 
The main namespace used in the library. 
 
A common template for constant bidirectional iterators that work on identical modes of linking...
 
std::ptrdiff_t difference_type
The difference_type returned by the distance between 2 iterators. 
 
A common template for bidirectional iterators that work on identical modes of linking. 
 
bool operator==(const Const_node_iterator< Link > &x) const 
A bidirectional iterator can be compared with a node iterator if they work on identical linking modes...
 
std::bidirectional_iterator_tag iterator_category
The iterator category that is always Bidirectional_iterator_tag. 
 
bool operator!=(const Const_node_iterator< Link > &x) const 
A bidirectional iterator can be compared for inequality with a node iterator if they work on identica...
 
Kdtree_link< Key, Value >::value_type & value(Node< Kdtree_link< Key, Value > > *node)
This function converts a pointer on a node into a value for a Kdtree_link type. 
 
dimension_type node_dim
The dimension of the current node. 
 
pointer operator->()
Returns a pointer to the value pointed to by the iterator. 
 
std::bidirectional_iterator_tag iterator_category
The iterator category that is always Bidirectional_iterator_tag. 
 
pointer operator->()
Returns a pointer to the value pointed to by the iterator.