Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fcl::IntervalTree Class Reference

Interval tree. More...

#include <hpp/fcl/broadphase/interval_tree.h>

Collaboration diagram for fcl::IntervalTree:
[legend]

Public Member Functions

 IntervalTree ()
 
 ~IntervalTree ()
 
void print () const
 Print the whole interval tree. More...
 
SimpleIntervaldeleteNode (IntervalTreeNode *node)
 Delete one node of the interval tree. More...
 
void deleteNode (SimpleInterval *ivl)
 delete node stored a given interval More...
 
IntervalTreeNodeinsert (SimpleInterval *new_interval)
 Insert one node of the interval tree. More...
 
IntervalTreeNodegetPredecessor (IntervalTreeNode *node) const
 get the predecessor of a given node More...
 
IntervalTreeNodegetSuccessor (IntervalTreeNode *node) const
 Get the successor of a given node. More...
 
std::deque< SimpleInterval * > query (double low, double high)
 Return result for a given query. More...
 

Protected Member Functions

void leftRotate (IntervalTreeNode *node)
 left rotation of tree node More...
 
void rightRotate (IntervalTreeNode *node)
 right rotation of tree node More...
 
void recursiveInsert (IntervalTreeNode *node)
 recursively insert a node More...
 
void recursivePrint (IntervalTreeNode *node) const
 recursively print a subtree More...
 
IntervalTreeNoderecursiveSearch (IntervalTreeNode *node, SimpleInterval *ivl) const
 recursively find the node corresponding to the interval More...
 
void fixupMaxHigh (IntervalTreeNode *node)
 Travels up to the root fixing the max_high fields after an insertion or deletion. More...
 
void deleteFixup (IntervalTreeNode *node)
 

Protected Attributes

IntervalTreeNoderoot
 
IntervalTreeNodenil
 

Detailed Description

Interval tree.

Constructor & Destructor Documentation

◆ IntervalTree()

fcl::IntervalTree::IntervalTree ( )

◆ ~IntervalTree()

fcl::IntervalTree::~IntervalTree ( )

Member Function Documentation

◆ deleteFixup()

void fcl::IntervalTree::deleteFixup ( IntervalTreeNode node)
protected

◆ deleteNode() [1/2]

SimpleInterval* fcl::IntervalTree::deleteNode ( IntervalTreeNode node)

Delete one node of the interval tree.

◆ deleteNode() [2/2]

void fcl::IntervalTree::deleteNode ( SimpleInterval ivl)

delete node stored a given interval

◆ fixupMaxHigh()

void fcl::IntervalTree::fixupMaxHigh ( IntervalTreeNode node)
protected

Travels up to the root fixing the max_high fields after an insertion or deletion.

◆ getPredecessor()

IntervalTreeNode* fcl::IntervalTree::getPredecessor ( IntervalTreeNode node) const

get the predecessor of a given node

◆ getSuccessor()

IntervalTreeNode* fcl::IntervalTree::getSuccessor ( IntervalTreeNode node) const

Get the successor of a given node.

◆ insert()

IntervalTreeNode* fcl::IntervalTree::insert ( SimpleInterval new_interval)

Insert one node of the interval tree.

◆ leftRotate()

void fcl::IntervalTree::leftRotate ( IntervalTreeNode node)
protected

left rotation of tree node

◆ print()

void fcl::IntervalTree::print ( ) const

Print the whole interval tree.

◆ query()

std::deque<SimpleInterval*> fcl::IntervalTree::query ( double  low,
double  high 
)

Return result for a given query.

◆ recursiveInsert()

void fcl::IntervalTree::recursiveInsert ( IntervalTreeNode node)
protected

recursively insert a node

◆ recursivePrint()

void fcl::IntervalTree::recursivePrint ( IntervalTreeNode node) const
protected

recursively print a subtree

◆ recursiveSearch()

IntervalTreeNode* fcl::IntervalTree::recursiveSearch ( IntervalTreeNode node,
SimpleInterval ivl 
) const
protected

recursively find the node corresponding to the interval

◆ rightRotate()

void fcl::IntervalTree::rightRotate ( IntervalTreeNode node)
protected

right rotation of tree node

Member Data Documentation

◆ nil

IntervalTreeNode* fcl::IntervalTree::nil
protected

◆ root

IntervalTreeNode* fcl::IntervalTree::root
protected