Open CASCADE Technology 6.6.0
|
#include <NCollection_UBTree.hxx>
Public Member Functions | |
TreeNode (const TheObjType &theObj, const TheBndType &theBnd) | |
Standard_Boolean | IsLeaf () const |
Standard_Boolean | IsRoot () const |
const TheBndType & | Bnd () const |
TheBndType & | ChangeBnd () |
const TheObjType & | Object () const |
const TreeNode & | Child (const Standard_Integer i) const |
TreeNode & | ChangeChild (const Standard_Integer i) |
const TreeNode & | Parent () const |
TreeNode & | ChangeParent () |
void | Gemmate (const TheBndType &theNewBnd, const TheObjType &theObj, const TheBndType &theBnd, const Handle< NCollection_BaseAllocator > &theAlloc) |
void | Kill (const Standard_Integer i, const Handle< NCollection_BaseAllocator > &theAlloc) |
~TreeNode () | |
Static Public Member Functions | |
static void | delNode (TreeNode *theNode, Handle< NCollection_BaseAllocator > &theAlloc) |
Class describing the node of the tree. Initially the tree consists of one leaf. A node can grow to a branch holding two childs:
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::TreeNode | ( | const TheObjType & | theObj, |
const TheBndType & | theBnd | ||
) | [inline] |
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::~TreeNode | ( | ) | [inline] |
const TheBndType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Bnd | ( | ) | const [inline] |
TheBndType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeBnd | ( | ) | [inline] |
TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeChild | ( | const Standard_Integer | i | ) | [inline] |
TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeParent | ( | ) | [inline] |
const TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Child | ( | const Standard_Integer | i | ) | const [inline] |
static void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::delNode | ( | TreeNode * | theNode, |
Handle< NCollection_BaseAllocator > & | theAlloc | ||
) | [inline, static] |
Deleter of tree node. The whole hierarchy of its children also deleted. This method should be used instead of operator delete.
void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Gemmate | ( | const TheBndType & | theNewBnd, |
const TheObjType & | theObj, | ||
const TheBndType & | theBnd, | ||
const Handle< NCollection_BaseAllocator > & | theAlloc | ||
) | [inline] |
Forces *this node being gemmated such a way that it becomes a branch holding the previous content of *this node at the first child and theObj at the second child.
TheNewBnd | new bounding box comprizing both child nodes. |
theObj | added object. |
theBnd | bounding box of theObj. allocator providing memory to the new child nodes, provided by the calling Tree instance. |
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsLeaf | ( | ) | const [inline] |
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsRoot | ( | ) | const [inline] |
void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Kill | ( | const Standard_Integer | i, |
const Handle< NCollection_BaseAllocator > & | theAlloc | ||
) | [inline] |
Kills the i-th child, and *this accepts the content of another child
const TheObjType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Object | ( | ) | const [inline] |
const TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Parent | ( | ) | const [inline] |