Interval tree. More...
#include <hpp/fcl/broadphase/interval_tree.h>
Public Member Functions | |
IntervalTree () | |
~IntervalTree () | |
void | print () const |
Print the whole interval tree. | |
SimpleInterval * | deleteNode (IntervalTreeNode *node) |
Delete one node of the interval tree. | |
void | deleteNode (SimpleInterval *ivl) |
delete node stored a given interval | |
IntervalTreeNode * | insert (SimpleInterval *new_interval) |
Insert one node of the interval tree. | |
IntervalTreeNode * | getPredecessor (IntervalTreeNode *node) const |
get the predecessor of a given node | |
IntervalTreeNode * | getSuccessor (IntervalTreeNode *node) const |
Get the successor of a given node. | |
std::deque< SimpleInterval * > | query (double low, double high) |
Return result for a given query. | |
Protected Member Functions | |
void | leftRotate (IntervalTreeNode *node) |
left rotation of tree node | |
void | rightRotate (IntervalTreeNode *node) |
right rotation of tree node | |
void | recursiveInsert (IntervalTreeNode *node) |
recursively insert a node | |
void | recursivePrint (IntervalTreeNode *node) const |
recursively print a subtree | |
IntervalTreeNode * | recursiveSearch (IntervalTreeNode *node, SimpleInterval *ivl) const |
recursively find the node corresponding to the interval | |
void | fixupMaxHigh (IntervalTreeNode *node) |
Travels up to the root fixing the max_high fields after an insertion or deletion. | |
void | deleteFixup (IntervalTreeNode *node) |
Protected Attributes | |
IntervalTreeNode * | root |
IntervalTreeNode * | nil |
Interval tree.
fcl::IntervalTree::IntervalTree | ( | ) |
fcl::IntervalTree::~IntervalTree | ( | ) |
void fcl::IntervalTree::deleteFixup | ( | IntervalTreeNode * | node | ) | [protected] |
SimpleInterval* fcl::IntervalTree::deleteNode | ( | IntervalTreeNode * | node | ) |
Delete one node of the interval tree.
void fcl::IntervalTree::deleteNode | ( | SimpleInterval * | ivl | ) |
delete node stored a given interval
void fcl::IntervalTree::fixupMaxHigh | ( | IntervalTreeNode * | node | ) | [protected] |
Travels up to the root fixing the max_high fields after an insertion or deletion.
IntervalTreeNode* fcl::IntervalTree::getPredecessor | ( | IntervalTreeNode * | node | ) | const |
get the predecessor of a given node
IntervalTreeNode* fcl::IntervalTree::getSuccessor | ( | IntervalTreeNode * | node | ) | const |
Get the successor of a given node.
IntervalTreeNode* fcl::IntervalTree::insert | ( | SimpleInterval * | new_interval | ) |
Insert one node of the interval tree.
void fcl::IntervalTree::leftRotate | ( | IntervalTreeNode * | node | ) | [protected] |
left rotation of tree node
void fcl::IntervalTree::print | ( | ) | const |
Print the whole interval tree.
std::deque<SimpleInterval*> fcl::IntervalTree::query | ( | double | low, |
double | high | ||
) |
Return result for a given query.
void fcl::IntervalTree::recursiveInsert | ( | IntervalTreeNode * | node | ) | [protected] |
recursively insert a node
void fcl::IntervalTree::recursivePrint | ( | IntervalTreeNode * | node | ) | const [protected] |
recursively print a subtree
IntervalTreeNode* fcl::IntervalTree::recursiveSearch | ( | IntervalTreeNode * | node, |
SimpleInterval * | ivl | ||
) | const [protected] |
recursively find the node corresponding to the interval
void fcl::IntervalTree::rightRotate | ( | IntervalTreeNode * | node | ) | [protected] |
right rotation of tree node
IntervalTreeNode* fcl::IntervalTree::nil [protected] |
IntervalTreeNode* fcl::IntervalTree::root [protected] |