Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions
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 ()

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:
TheNewBndnew bounding box comprizing both child nodes.
theObjadded object.
theBndbounding 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 >
const TreeNode& NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Parent ( ) const [inline]

The documentation for this class was generated from the following file: