Open CASCADE Technology 7.8.2.dev
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, const 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:

  • one correspondent to initial node
  • the new one with a new object and bounding box

Constructor & Destructor Documentation

◆ TreeNode()

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

◆ ~TreeNode()

template<class TheObjType , class TheBndType >
NCollection_UBTree< TheObjType, TheBndType >::TreeNode::~TreeNode ( )
inline

Member Function Documentation

◆ Bnd()

template<class TheObjType , class TheBndType >
const TheBndType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Bnd ( ) const
inline

◆ ChangeBnd()

template<class TheObjType , class TheBndType >
TheBndType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeBnd ( )
inline

◆ ChangeChild()

template<class TheObjType , class TheBndType >
TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeChild ( const Standard_Integer i)
inline

◆ ChangeParent()

template<class TheObjType , class TheBndType >
TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeParent ( )
inline

◆ Child()

template<class TheObjType , class TheBndType >
const TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Child ( const Standard_Integer i) const
inline

◆ delNode()

template<class TheObjType , class TheBndType >
static void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::delNode ( TreeNode * theNode,
const Handle< NCollection_BaseAllocator > & theAlloc )
inlinestatic

Deleter of tree node. The whole hierarchy of its children also deleted. This method should be used instead of operator delete.

◆ Gemmate()

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. @theAlloc allocator providing memory to the new child nodes, provided by the calling Tree instance.

◆ IsLeaf()

template<class TheObjType , class TheBndType >
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsLeaf ( ) const
inline

◆ IsRoot()

template<class TheObjType , class TheBndType >
Standard_Boolean NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsRoot ( ) const
inline

◆ Kill()

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

◆ Object()

template<class TheObjType , class TheBndType >
const TheObjType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Object ( ) const
inline

◆ Parent()

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: