#include <FPB.h>
Public Member Functions | |
FPB_tree () | |
FPB_tree (R_tree_props *props) | |
virtual | ~FPB_tree () |
virtual void | ensureReady () |
void | bulkLoad () |
virtual base_tree * | insert (BB_container *element) |
virtual base_tree * | remove (BB_container *element) |
virtual base_tree * | search (BB_container *element) |
virtual vector< int > | containedIn (BB_type box) const |
virtual vector< int > | intersects (const vector< double > begin, const vector< double > end) const |
virtual vector< int > | intersects (Point point) const |
virtual vector< int > | intersects (vector< double > a, double b) const |
virtual vector< int > | neighboursOf (BB_container *item) const |
Protected Member Functions | |
virtual Ordering< BB_container > * | useOrdering () const |
Private Member Functions | |
virtual bool | checkReady () const |
vector< base_tree * > | bulkLoad (vector< BB_container * > *input) |
Private Attributes | |
bool | loaded |
vector< BB_container > | cache |
Definition at line 20 of file FPB.h.
Base constructor. Tells the R-tree it is bulk-loading *not* to delete its leaf nodes since the FPB algorithm will cache them.
Definition at line 63 of file FPB.h.
References FPB_tree< base_tree >::loaded.
FPB_tree< base_tree >::FPB_tree | ( | R_tree_props * | props | ) | [inline] |
Base constructor. Takes as an argument given R-tree properties.
props | Pointer to a given set of properties. |
Definition at line 71 of file FPB.h.
References FPB_tree< base_tree >::loaded.
virtual bool FPB_tree< base_tree >::checkReady | ( | ) | const [inline, private, virtual] |
Checks if the tree is ready for access.
Definition at line 29 of file FPB.h.
References FPB_tree< base_tree >::loaded.
Referenced by FPB_tree< base_tree >::containedIn(), FPB_tree< base_tree >::intersects(), and FPB_tree< base_tree >::neighboursOf().
vector< base_tree * > FPB_tree< base_tree >::bulkLoad | ( | vector< BB_container * > * | input | ) | [inline, private] |
Starts bulk-loading the elements in a given vector
input | The elements to be inserted |
Definition at line 216 of file FPB.h.
References Cubic_Bounding_Box::clear().
Ordering< BB_container > * FPB_tree< base_tree >::useOrdering | ( | ) | const [inline, protected, virtual] |
The default ordering this tree will use for sorting.
Definition at line 148 of file FPB.h.
References Cubic_Bounding_Box_Container::HILC_ORDERING.
Referenced by FPB_tree< base_tree >::bulkLoad().
void FPB_tree< base_tree >::ensureReady | ( | ) | [inline, virtual] |
Checks if the FPB tree is ready for queries. If not, it starts the bulk-loading mechanism automatically (and prints a warning to stderr).
Definition at line 141 of file FPB.h.
References FPB_tree< base_tree >::bulkLoad(), and FPB_tree< base_tree >::loaded.
void FPB_tree< base_tree >::bulkLoad | ( | ) | [inline] |
Starts bulk-loading the inserted elements
Definition at line 154 of file FPB.h.
References FPB_tree< base_tree >::cache, FPB_tree< base_tree >::loaded, and FPB_tree< base_tree >::useOrdering().
Referenced by FPB_tree< base_tree >::ensureReady().
base_tree * FPB_tree< base_tree >::insert | ( | BB_container * | element | ) | [inline, virtual] |
Chaches a given container element for bulk-loading into the R-tree structure.
element | The to be bulk-loaded element |
Definition at line 278 of file FPB.h.
References FPB_tree< base_tree >::cache, and FPB_tree< base_tree >::loaded.
base_tree * FPB_tree< base_tree >::remove | ( | BB_container * | element | ) | [inline, virtual] |
Removes a stored polytope from the R-tree structure. A pointer to the polytope must be explicitly given. If the polytope cannot be found within the R-tree, a warning is printed to stderr but no further action is taken.
element | The element to be removed from the R-tree. |
Definition at line 289 of file FPB.h.
References FPB_tree< base_tree >::cache, Cubic_Bounding_Box_Container::getID(), and FPB_tree< base_tree >::loaded.
base_tree * FPB_tree< base_tree >::search | ( | BB_container * | element | ) | [inline, virtual] |
Searches the R-tree for a given polytope, and returns the leaf node at which it is stored.
element | The element to be found |
Definition at line 302 of file FPB.h.
References FPB_tree< base_tree >::cache, Cubic_Bounding_Box_Container::getID(), and FPB_tree< base_tree >::loaded.
vector< int > FPB_tree< base_tree >::containedIn | ( | BB_type | box | ) | const [inline, virtual] |
See superclass Spatial_Tree
Definition at line 315 of file FPB.h.
References FPB_tree< base_tree >::checkReady().
vector< int > FPB_tree< base_tree >::intersects | ( | const vector< double > | begin, | |
const vector< double > | end | |||
) | const [inline, virtual] |
See superclass Spatial_Tree
Definition at line 324 of file FPB.h.
References FPB_tree< base_tree >::checkReady().
vector< int > FPB_tree< base_tree >::intersects | ( | Point | point | ) | const [inline, virtual] |
See superclass Spatial_Tree
Definition at line 333 of file FPB.h.
References FPB_tree< base_tree >::checkReady().
vector< int > FPB_tree< base_tree >::intersects | ( | vector< double > | a, | |
double | b | |||
) | const [inline, virtual] |
See superclass Spatial_Tree
Definition at line 342 of file FPB.h.
References FPB_tree< base_tree >::checkReady().
vector< int > FPB_tree< base_tree >::neighboursOf | ( | BB_container * | item | ) | const [inline, virtual] |
See superclass Spatial_Tree
Definition at line 351 of file FPB.h.
References FPB_tree< base_tree >::checkReady().
Whether or not the tree is bulk-loaded and ready for access
Definition at line 32 of file FPB.h.
Referenced by FPB_tree< base_tree >::bulkLoad(), FPB_tree< base_tree >::checkReady(), FPB_tree< base_tree >::ensureReady(), FPB_tree< base_tree >::FPB_tree(), FPB_tree< base_tree >::insert(), FPB_tree< base_tree >::remove(), and FPB_tree< base_tree >::search().
vector< BB_container > FPB_tree< base_tree >::cache [private] |
Vector preallocating the leaf nodes. They are copied entirely into the cache in an attempt to gain speed by using a single large allocated chunk of memory for storing the leaf nodes.
Definition at line 37 of file FPB.h.
Referenced by FPB_tree< base_tree >::bulkLoad(), FPB_tree< base_tree >::insert(), FPB_tree< base_tree >::remove(), and FPB_tree< base_tree >::search().