Skip to content

itk::PowerOfTwoPointTreeNode

More...

#include <itkPowerOfTwoPointTree.h>

Inherits from LightObject

Public Types

Name
typedef PowerOfTwoPointTreeNode Self
typedef SmartPointer< Self > Pointer
typedef SmartPointer< const Self > ConstPointer
typedef LightObject Superclass
typedef Point< double, VDimension > PointType
typedef std::list< ParticlePointIndexPair< VDimension > > PointListType

Public Functions

Name
itkTypeMacro(PowerOfTwoPointTreeNode , LightObject )
itkNewMacro(Self )
itkStaticConstMacro(BranchesPerNode , int , (powstruct< 2, VDimension >::c) )
bool operator==(const PowerOfTwoPointTreeNode & o) const
bool IsLeaf() const
PointListType::iterator InsertElement(const ParticlePointIndexPair< VDimension > & elem)
bool Contains(const PointType & p) const
void SetLowerBound(const PointType & p)
const PointType & GetLowerBound() const
void SetUpperBound(const PointType & p)
const PointType & GetUpperBound() const
Self::Pointer * GetBranches()
const Self::Pointer * GetBranches() const
Self::Pointer & GetBranch(unsigned int i)
const Self::Pointer & GetBranch(unsigned int i) const
void SetBranch(unsigned int b, typename Self::Pointer n)
void PrintSelf(std::ostream & os, Indent indent) const
const PointListType & GetList() const
PointListType & GetList()

Protected Functions

Name
PowerOfTwoPointTreeNode()
~PowerOfTwoPointTreeNode()
PowerOfTwoPointTreeNode(const PowerOfTwoPointTreeNode & o)
const PowerOfTwoPointTreeNode & operator=(const PowerOfTwoPointTreeNode & o)

Detailed Description

template <unsigned int VDimension>
class itk::PowerOfTwoPointTreeNode;

A node object for use in the PowerOfTwoPointTree. This class contains a bounding box, a set of child (branch) node pointers, and a linked list that may be filled with Points and Indices (unsigned ints). The single template parameter is the dimensionality of the Points. This class was designed for use as a binning structure for itkParticleNeighborhood classes.

Public Types Documentation

typedef Self

typedef PowerOfTwoPointTreeNode itk::PowerOfTwoPointTreeNode< VDimension >::Self;

Standard class typedefs.

typedef Pointer

typedef SmartPointer<Self> itk::PowerOfTwoPointTreeNode< VDimension >::Pointer;

typedef ConstPointer

typedef SmartPointer<const Self> itk::PowerOfTwoPointTreeNode< VDimension >::ConstPointer;

typedef Superclass

typedef LightObject itk::PowerOfTwoPointTreeNode< VDimension >::Superclass;

typedef PointType

typedef Point<double, VDimension> itk::PowerOfTwoPointTreeNode< VDimension >::PointType;

Point type stored in the leaf nodes.

typedef PointListType

typedef std::list<ParticlePointIndexPair<VDimension> > itk::PowerOfTwoPointTreeNode< VDimension >::PointListType;

List type for storing lists of points+indices.

Public Functions Documentation

function itkTypeMacro

itkTypeMacro(
    PowerOfTwoPointTreeNode ,
    LightObject 
)

function itkNewMacro

itkNewMacro(
    Self 
)

Method for creation through the object factory.

function itkStaticConstMacro

itkStaticConstMacro(
    BranchesPerNode ,
    int ,
    (powstruct< 2, VDimension >::c) 
)

The number of branches at each node of the tree, which is 2^VDimension, e.g. 4 in 2D, 8 in 3D, etc.

function operator==

inline bool operator==(
    const PowerOfTwoPointTreeNode & o
) const

Equivalence operator, ignores value type.

function IsLeaf

inline bool IsLeaf() const

Returns true if this is a leaf node (has no branches) and false otherwise. The assumption is that a non-leaf node cannot have any empty branches. Each level of the tree must contain BranchesPerNode divisions. This assumption speeds up certain types of processing.

function InsertElement

inline PointListType::iterator InsertElement(
    const ParticlePointIndexPair< VDimension > & elem
)

Insert a PointIndexPair into the list associated with this node.

function Contains

inline bool Contains(
    const PointType & p
) const

Returns true if the bounding box in this node contains the given point and false otherwise.

function SetLowerBound

inline void SetLowerBound(
    const PointType & p
)

Set/Get the lower and upper bounds of the region described by this node.

function GetLowerBound

inline const PointType & GetLowerBound() const

function SetUpperBound

inline void SetUpperBound(
    const PointType & p
)

function GetUpperBound

inline const PointType & GetUpperBound() const

function GetBranches

inline Self::Pointer * GetBranches()

Return the data structure holding branch (child) nodes.

function GetBranches

inline const Self::Pointer * GetBranches() const

function GetBranch

inline Self::Pointer & GetBranch(
    unsigned int i
)

Return a specific branch

function GetBranch

inline const Self::Pointer & GetBranch(
    unsigned int i
) const

function SetBranch

inline void SetBranch(
    unsigned int b,
    typename Self::Pointer n
)

Set the node for a specific branch of this node.

function PrintSelf

void PrintSelf(
    std::ostream & os,
    Indent indent
) const

Standard ITK PrintSelf method.

function GetList

inline const PointListType & GetList() const

Get the list of elements which contain points and associated indices.

function GetList

inline PointListType & GetList()

Protected Functions Documentation

function PowerOfTwoPointTreeNode

inline PowerOfTwoPointTreeNode()

function ~PowerOfTwoPointTreeNode

inline ~PowerOfTwoPointTreeNode()

function PowerOfTwoPointTreeNode

PowerOfTwoPointTreeNode(
    const PowerOfTwoPointTreeNode & o
)

function operator=

const PowerOfTwoPointTreeNode & operator=(
    const PowerOfTwoPointTreeNode & o
)

Updated on 2022-07-23 at 17:50:03 -0600