NCollection_UBTree< TheObjType, TheBndType >::TreeNode Class Reference

#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 TreeNodeChild (const Standard_Integer i) const
TreeNodeChangeChild (const Standard_Integer i)
const TreeNodeParent () const
TreeNodeChangeParent ()
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 ()
void * operator new (size_t theSize, const Handle< NCollection_BaseAllocator > &theAllocator)
void * operator new (size_t, void *theMem)

Static Public Member Functions

static void delNode (TreeNode *theNode, Handle< NCollection_BaseAllocator > &theAlloc)

Detailed Description

template<class TheObjType, class TheBndType>
class NCollection_UBTree< TheObjType, TheBndType >::TreeNode

Class describing the node of the tree. Initially the tree consists of one leaf. A node can grow to a branch holding two childs:


Constructor & Destructor Documentation

template<class TheObjType , class TheBndType >
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::TreeNode ( const TheObjType &  theObj,
const TheBndType &  theBnd 
) [inline]
template<class TheObjType , class TheBndType >
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::~TreeNode (  )  [inline]

Member Function Documentation

template<class TheObjType , class TheBndType >
const TheBndType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Bnd (  )  const [inline]
template<class TheObjType , class TheBndType >
TheBndType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeBnd (  )  [inline]
template<class TheObjType , class TheBndType >
TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeChild ( const Standard_Integer  i  )  [inline]
template<class TheObjType , class TheBndType >
TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeParent (  )  [inline]
template<class TheObjType , class TheBndType >
const TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Child ( const Standard_Integer  i  )  const [inline]
template<class TheObjType , class TheBndType >
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.

template<class TheObjType , class TheBndType >
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.

Parameters:
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.
template<class TheObjType , class TheBndType >
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsLeaf (  )  const [inline]
template<class TheObjType , class TheBndType >
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsRoot (  )  const [inline]
template<class TheObjType , class TheBndType >
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

template<class TheObjType , class TheBndType >
const TheObjType& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Object (  )  const [inline]
template<class TheObjType , class TheBndType >
void* NCollection_UBTree< TheObjType, TheBndType >::TreeNode::operator new ( size_t  ,
void *  theMem 
) [inline]

Allocator of a tree node.

template<class TheObjType , class TheBndType >
void* NCollection_UBTree< TheObjType, TheBndType >::TreeNode::operator new ( size_t  theSize,
const Handle< NCollection_BaseAllocator > &  theAllocator 
) [inline]

Allocator of a tree node.

template<class TheObjType , class TheBndType >
const TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Parent (  )  const [inline]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Thu Mar 3 10:59:53 2011 for Open CASCADE Technology by  doxygen 1.6.3