Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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)
 
bool IsLeaf () const noexcept
 
bool IsRoot () const noexcept
 
const TheBndTypeBnd () const noexcept
 
TheBndTypeChangeBnd () noexcept
 
const TheObjTypeObject () const noexcept
 
const TreeNodeChild (const int i) const noexcept
 
TreeNodeChangeChild (const int i) noexcept
 
const TreeNodeParent () const noexcept
 
TreeNodeChangeParent () noexcept
 
void Gemmate (const TheBndType &theNewBnd, const TheObjType &theObj, const TheBndType &theBnd, const occ::handle< NCollection_BaseAllocator > &theAlloc)
 
void Kill (const int i, const occ::handle< NCollection_BaseAllocator > &theAlloc)
 
 ~TreeNode ()
 

Static Public Member Functions

static void delNode (TreeNode *theNode, const occ::handle< NCollection_BaseAllocator > &theAlloc)
 Deleter of tree node. The whole hierarchy of its children is also deleted. This method should be used instead of operator delete. Uses iterative traversal to avoid stack overflow on deeply unbalanced trees.
 

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

◆ TreeNode()

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

◆ ~TreeNode()

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

Member Function Documentation

◆ Bnd()

const TheBndType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Bnd ( ) const
inlinenoexcept

◆ ChangeBnd()

TheBndType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeBnd ( )
inlinenoexcept

◆ ChangeChild()

TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeChild ( const int i)
inlinenoexcept

◆ ChangeParent()

TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::ChangeParent ( )
inlinenoexcept

◆ Child()

const TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Child ( const int i) const
inlinenoexcept

◆ delNode()

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

Deleter of tree node. The whole hierarchy of its children is also deleted. This method should be used instead of operator delete. Uses iterative traversal to avoid stack overflow on deeply unbalanced trees.

◆ Gemmate()

void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Gemmate ( const TheBndType & theNewBnd,
const TheObjType & theObj,
const TheBndType & theBnd,
const occ::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.
theAllocallocator providing memory to the new child nodes, provided by the calling Tree instance.

◆ IsLeaf()

bool NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsLeaf ( ) const
inlinenoexcept

◆ IsRoot()

bool NCollection_UBTree< TheObjType, TheBndType >::TreeNode::IsRoot ( ) const
inlinenoexcept

◆ Kill()

void NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Kill ( const int i,
const occ::handle< NCollection_BaseAllocator > & theAlloc )
inline

Kills the i-th child, and *this accepts the content of another child

◆ Object()

const TheObjType & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Object ( ) const
inlinenoexcept

◆ Parent()

const TreeNode & NCollection_UBTree< TheObjType, TheBndType >::TreeNode::Parent ( ) const
inlinenoexcept

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