16 #ifndef SPATIAL_OPEN_REGION_HPP 
   17 #define SPATIAL_OPEN_REGION_HPP 
   19 #include "spatial_region.hpp" 
   40   template <
typename Key, 
typename Compare>
 
   84       return (!Compare::operator()(dim, 
_lower, key)
 
   86               : (Compare::operator()(dim, key, 
_upper)
 
  121   template <
typename Tp>
 
  125   (
const Tp& container,
 
  133       (container.key_comp(), lower, upper);
 
  136   template<
typename Ct>
 
  139       <Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  140                        typename container_traits<Ct>::key_compare> >
 
  154   template<
typename Ct>
 
  157       <const Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  158                              typename container_traits<Ct>::key_compare> >
 
  177         <
const Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  182   template<
typename Ct>
 
  185       <Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  186                        typename container_traits<Ct>::key_compare> >
 
  198         <Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  203   template<
typename Ct>
 
  206       <const Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  207                              typename container_traits<Ct>::key_compare> >
 
  219         <
const Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  228         <
const Ct, open_bounds<typename container_traits<Ct>::key_type,
 
  233   template <
typename Ct>
 
  234   inline open_region_iterator<Ct>
 
  240   template <
typename Ct>
 
  241   inline open_region_iterator<const Ct>
 
  247   template <
typename Ct>
 
  248   inline open_region_iterator<const Ct>
 
  254   template <
typename Ct>
 
  255   inline open_region_iterator<Ct>
 
  261   template <
typename Ct>
 
  262   inline open_region_iterator<const Ct>
 
  268   template <
typename Ct>
 
  269   inline open_region_iterator<const Ct>
 
  277   template <
typename Ct>
 
  278   inline open_region_iterator_pair<Ct>
 
  284   template <
typename Ct>
 
  285   inline open_region_iterator_pair<const Ct>
 
  291   template <
typename Ct>
 
  292   inline open_region_iterator_pair<const Ct>
 
  302 #endif // SPATIAL_OPEN_REGION_HPP 
This type provides both an iterator and a constant iterator to iterate through all elements of a tree...
A model of Region Predicate that checks if a value of type Key is contained within the open boundarie...
void check_open_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
Checks if all coordinates of lower are strictly less than these of higher along the same dimensions...
Tp::key_compare key_compare
Comparison functor used to compare two instances of key_type. 
open_region_iterator< const Ct > open_region_cend(const Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
open_region_iterator< Ct > open_region_end(Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
open_region_iterator_pair()
region_iterator< const Ct, Predicate > region_cend(const Ct &container, const Predicate &pred)
This structure defines a pair of mutable region iterator. 
Tp::key_type key_type
The type representing the key managed by the container. 
open_region_iterator< const Ct > open_region_cbegin(const Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
open_region_iterator_pair< Ct > open_region_range(Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
Key _upper
The upper bound for the orthogonal region iterator. 
region_iterator< Ct, Predicate > region_begin(Ct &container, const Predicate &pred)
open_bounds()
The default constructor leaves everything un-initialized. 
region_iterator_pair< Ct, Predicate > region_range(Ct &container, const Predicate &pred)
Returns a spatial::region_iterator_pair where first points to the first element matching the predicat...
open_region_iterator< Ct > open_region_begin(Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
The traits type for all containers in the spatial namespace. 
region_iterator< const Ct, Predicate > region_cbegin(const Ct &container, const Predicate &pred)
relative_order
Defines values for relative ordering. 
std::size_t dimension_type
Defines the type for the dimension as being a size. 
region_iterator< Ct, Predicate > region_end(Ct &container, const Predicate &pred)
Key _lower
The lower bound for the orthogonal region iterator. 
The main namespace used in the library. 
region_iterator_pair< const Ct, Predicate > region_crange(const Ct &container, const Predicate &pred)
This overload works only on constant containers and will return a set of constant iterators...
open_region_iterator_pair< const Ct > open_region_crange(const Ct &container, const typename container_traits< Ct >::key_type &lower, const typename container_traits< Ct >::key_type &upper)
open_bounds(const Compare &compare, const Key &lower, const Key &upper)
Set the lower and upper boundary for the orthogonal range search in the region. 
open_region_iterator_pair()
open_bounds< typename container_traits< Tp >::key_type, typename container_traits< Tp >::key_compare > make_open_bounds(const Tp &container, const typename container_traits< Tp >::key_type &lower, const typename container_traits< Tp >::key_type &upper)
A open_bounds factory that takes in a container, a region defined by lower and upper, and returns a constructed open_bounds object. 
relative_order operator()(dimension_type dim, dimension_type, const Key &key) const 
The operator that returns wheather the point is in region or not.