Spatial C++ Library
Generic Multi-Dimensional Containers and Spatial Operations
Structure of the Library


The library is composed of 3 different categories of components: containers, iterators and functionals. They have similar meaning as in the STL:

  • Containers will organize inserted objects in memory for spatial queries
  • Iterators are used to realize the queries themselves. Many queries in the libraries, such as orthogonal range search or nearest neighbor search can return k elements. Iterators are abstraction concept used to realize these queries.
  • Functionals are objects with minimal memory footprint presenting a limited interface (generally operator()) and as such, appear to behave as functions. They are used to accomplished various tasks, often as a parameter to more complex algorithms. They support genericity. In this section, only a limited amount of functional are presented, compared to those provided in the library.

Namespace and Include files

Spatial provides all it's public elements into 1 single namespace spatial. All implementation details are hidden into the namespace spatial::details.

Similarly, all include files that are publicly accessible are accessible directly under the installation directory, generally called "spatial/":

#include <spatial/point_multiset>
#include <spatial/box_multiset>
#include <spatial/idle_box_multiset>

Implementation details are hidden in headers under the installation directory "spatial/bits/".

If you are a new library user and your are finding yourself requiering access to the implementation details, you are probably not doing the right thing.