OCC Main Page | FoundationClasses | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

FoundationClasses
TKernel
NCollection


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)

Private Member Functions

 TreeNode ()

Private Attributes

TheBndType myBnd
 bounding geometry
TheObjType myObject
 the object
TreeNodemyChildren
 2 children forming a b-tree
TreeNodemyParent
 the pointer to a parent node


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]
 

template<class TheObjType, class TheBndType>
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::TreeNode  )  [inline, private]
 


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]
 


Field Documentation

template<class TheObjType, class TheBndType>
TheBndType NCollection_UBTree< TheObjType, TheBndType >::TreeNode::myBnd [private]
 

template<class TheObjType, class TheBndType>
TreeNode* NCollection_UBTree< TheObjType, TheBndType >::TreeNode::myChildren [private]
 

template<class TheObjType, class TheBndType>
TheObjType NCollection_UBTree< TheObjType, TheBndType >::TreeNode::myObject [private]
 

template<class TheObjType, class TheBndType>
TreeNode* NCollection_UBTree< TheObjType, TheBndType >::TreeNode::myParent [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 13:13:02 2008 for OpenCASCADE by  doxygen 1.4.1