ITK  4.9.0
Insight Segmentation and Registration Toolkit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
itk::OctreeNode Class Reference

#include <itkOctreeNode.h>

+ Collaboration diagram for itk::OctreeNode:

Detailed Description

A data structure representing a node in an Octree.

OctreeNode is the basic building block of an octree. It is rarely used by itself, and commonly used by the Octree class.

OctreeNodes have two states: 1) They are a Colored node and the m_Branch is a sentinal value indicating the color, or 2) they are a branch node, and m_Branch is a dynamically allocated array of 8 pointers to OctreeNodes. In the second state, the 8 child OctreeNodes are instantiated by the parent node.

Author
Hans J. Johnson
Todo:
FIXME copy & paste documentation in all methods.

Definition at line 45 of file itkOctreeNode.h.

Public Member Functions

long int GetColor () const
 
bool IsNodeColored () const
 
 OctreeNode ()
 
void SetBranch (OctreeNodeBranch *NewBranch)
 
void SetColor (int NodeColor)
 
void SetParentOctree (OctreeBase *parent)
 
virtual ~OctreeNode ()
 
OctreeNodeGetChild (const enum LeafIdentifier ChildID) const
 
OctreeNodeGetChild (const enum LeafIdentifier ChildID)
 

Private Member Functions

void RemoveChildren ()
 

Private Attributes

OctreeNodeBranchm_Branch
 
OctreeBasem_Parent
 

Constructor & Destructor Documentation

itk::OctreeNode::OctreeNode ( )

Default constructor

Postcondition
After construction, it is assumed all children of this node are colored with values of 0.
virtual itk::OctreeNode::~OctreeNode ( )
virtual

Default destructor

Member Function Documentation

OctreeNode& itk::OctreeNode::GetChild ( const enum LeafIdentifier  ChildID) const

Returns the value of the specified Child for this OctreeNode

Parameters
ChildIDThe numerical identifier of the desired child.
Returns
A pointer to the Desired child. NOTE: This is always an instance of an OctreeNode.
OctreeNode& itk::OctreeNode::GetChild ( const enum LeafIdentifier  ChildID)

Returns the value of the specified Child for this OctreeNode

Parameters
ChildIDThe numerical identifier of the desired child.
Returns
A pointer to the Desired child. NOTE: This is always an instance of an OctreeNode.
long int itk::OctreeNode::GetColor ( ) const

Determines the color value of the specified Child for this OctreeNode

Precondition
Must determine that the specified node is colored (Use IsNodeColored() member function. Behavior is undefined when the child is another Octree.
Returns
A value between 0 and 255 to indicate the color of the Desired child.
bool itk::OctreeNode::IsNodeColored ( ) const

Determines if the child is a leaf node (colored), or a branch node (uncolored)

Returns
true if it is colored, false if it is not
void itk::OctreeNode::RemoveChildren ( )
private

Removes all children from this node down, and sets the value value of the children to background.

void itk::OctreeNode::SetBranch ( OctreeNodeBranch NewBranch)

Sets the color value of the specified Child for this OctreeNode

Postcondition
All children of the specified child are removed, and the child is set to the desired value.

Referenced by itk::Octree< TPixel, ColorTableSize, MappingFunctionType >::SetTree().

void itk::OctreeNode::SetColor ( int  NodeColor)

Sets the color value of the specified Child for this OctreeNode

Parameters
NodeColorThe desired color of this node.
Postcondition
All children of the specified child are removed, and the child is set to the desired value.

Referenced by itk::Octree< TPixel, ColorTableSize, MappingFunctionType >::SetColor().

void itk::OctreeNode::SetParentOctree ( OctreeBase parent)
inline

Definition at line 102 of file itkOctreeNode.h.

Referenced by itk::OctreeNodeBranch::OctreeNodeBranch().

Member Data Documentation

OctreeNodeBranch* itk::OctreeNode::m_Branch
private

Each element holds COLOR or pointer to another octree node

Definition at line 119 of file itkOctreeNode.h.

OctreeBase* itk::OctreeNode::m_Parent
private

Definition at line 120 of file itkOctreeNode.h.


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