|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
R*-tree: an R-tree tuned with the Beckmann-Kriegel-Schneider-Seeger heuristics. More...
#include <tpl_r_tree.H>Go to the source code of this file.
Namespaces | |
| namespace | Aleph |
| Main namespace for Aleph-w library functions. | |
Typedefs | |
| template<typename Payload , size_t MaxEntries = 16, size_t MinEntries = MaxEntries / 2> | |
| using | Aleph::RStarTree = RTree< Payload, MaxEntries, MinEntries, RTreeVariant::RStar > |
| Dynamic R*-tree spatial index (R-tree with the R*-tree heuristics). | |
R*-tree: an R-tree tuned with the Beckmann-Kriegel-Schneider-Seeger heuristics.
RStarTree<Payload, MaxEntries, MinEntries> is the same dynamic spatial index as RTree (same API, same Rectangle/Payload entries, same exact rational coordinates), but built with the R*-tree insertion strategy instead of Guttman's quadratic split. It is a thin alias over RTree<Payload, MaxEntries, MinEntries, RTreeVariant::RStar>, so it shares all of RTree's query, deletion, verification and copy/move machinery.
Relative to the plain R-tree, the R*-tree changes three things:
These heuristics usually yield lower node overlap and faster queries than the plain R-tree at the cost of somewhat more work per insertion. All structural invariants, complexity classes, exception-safety, thread-safety and reference-invalidation rules are exactly those documented for RTree in tpl_r_tree.H.
Definition in file tpl_r_star_tree.H.