Spatial C++ Library
Generic Multi-Dimensional Containers and Spatial Operations
Change Log

Version 2.1.8

  • Fixed Ticket #5 and Ticket #4 raised by Michał Garapich. Thanks for supporting the library by contributing bugs.

Version 2.1.7

  • Greatly improves performance of nearest neighbor search and iteration on nearest neighbors; between 5 to 100 times. Major improvements to mapping iterators too, which improve insertion/removal times in the kd-tree. Major improvement on finding equals or simply find() in containers. Note: euclidian metric now uses a naive (but faster) computation instead of the hypot algorithm by default. Use SPATIAL_SAFE_ARITHMETICS to use the hypot algorithm.

Version 2.1.6

  • Ticket #2 (https://sourceforge.net/p/spatial/tickets/2/) reported by Ed Baskerville has been solved. To solve it, C++11 support for compilation has been added to the library for Clang++ and G++. Additionally support for libc++ and Clang++ has also been added. Note that C++11 support only means it compiles when the compiler is set to be compliant with C++11. The library's API has yet so support new semantics such as rvalues, initialization lists, etc.

Version 2.1.5

Version 2.1.4

  • The mapping iterator is now dissociated from the containers, its header file and definition will not be pulled by default anymore when the containers include file are specified. So its include file "spatial/mapping_iterator.hpp" must be specified.
  • A minor update for the developments on the feature_4 branch with improvements on the performance of the mapping iterator and the erase function for the idle_* family of containers.

Version 2.1.3

Version 2.1.2

Version 2.1.1

Version 2.1.0

  • spatial::equal_iterator was rewritten independantly from spatial::region_iterator. This means that you can't call the predicate() accessors from spatial::region_iterator. This has been replaced by the model() and key_comp() accessors. The rest of the interface remains similar, and unless you were using predicate(), the changes will apply transparently.

Version 2.0.1

  • Some minor improvements to documentation and examples. Plus some addition of tests and fixes.

Version 2.0.0

Version 1.0.0 (unsupported)

  • First version, that is now unsupported, with:
    • multi-dimension template containers with unlimited number of dimensions to store points in space,
    • dimensions may be of different types,
    • static or dynamic time determination of the number of dimensions,
    • amortized complexity on insertion and removal,
    • use custom predicate to define a range of elements,
    • STL-compatible iterators that go over that range of elements,
    • flexible definition of a metric space for elements in the container,
    • STL-compatible iterators going from the nearest to the furthest neighbor of a point according to the metric space applied.
  • Documentation
  • Examples