v1.2.0
This release contains numerous improvements mostly related to performance:
- Bugfix: FilterSphere was not working correctly. #27
- Potentially BREAKING CHANGE: Refactored API of all methods that accept callbacks and filters to
accept universal/forwarding references.
Also changed filters and callback to not requireconst
methods. #22 - Clean up iterator implementations. #19
- Make PhTree and PhTreeMultimap movable (move-assign/copy). #18
- Potentially BREAKING CHANGE when using
IsNodeValid()
in provided filters:
Changedbit_width_t
fromuin16_t
touint32_t
. This improves performance of 3D insert/emplace
on small datasets by up to 15%. To avoid warnings that meant that the API ofFilterAABB
andFilterSphere
had to be changed to acceptuint32_t
instead ofint
. This may break some implementations. #17 - DIM>8 now uses custom b_plus_tree_map instead of std::map. This improves performance for all operations, e.g.
window queries on large datasets are up to 4x faster. Benchmarks results can be found in the issue. #14 - postfix/infix field moved from Node to Entry. This avoids indirections and improves performance of most by ~10%.
operations by 5-15%. #11 - Entries now use 'union' to store children. #9
- Avoid unnecessary find() when removing a node. #5
- Avoid unnecessary key copy when inserting a node. #4
- for_each(callback, filter) was traversing too many nodes. #2
- Build improvements for bazel/cmake