Spatial is a generic header-only C++ library providing multi-dimensional in-memory containers, iterators and functionals. Spatial is a general purpose library with good overall performance thanks to its self-balancing kd-tree containers. Spatial makes it easy to search for nearest neighbors, orthogonal
ranges, or perform ordering of objects in any number of dimensions.
Spatial's design borrows heavily from the STL, and strives to follow it's elegant interface; therefore Spatial's containers, iterators and functionals integrate well with the STL. Additionally, Spatial's self-balancing kd-tree based containers, capable of object insertion and removal in fractional amortized time, prevent worst-case computational time on most operations.
Spatial was created with tracking analysis and real-time positioning in mind, but its good overall performance and its set of algorithms should make it as simple for anyone to do spatial analysis in their application.
- Generic implementation of kd-trees in C++
- API design is similar to the STL
- Aim at good overall performance with self-balancing containers
- Sort objects along several dimensions that may be of different types
- static (compile-time) or dynamic (run-time) determination of the number of dimensions
- Insertions and removals in fractional amortized time
- Iteration over an orthogonal range
- Iteration over n neighbors, from nearest to furthest
- Iteration over a single dimension, independantly from others
Be the first to post a review of Spatial C++ Library!