shapeworks::PowerOfTwoPointTreeNode
#include <PowerOfTwoPointTree.h>
Inherits from itk::LightObject
Public Types
Name | |
---|---|
typedef PowerOfTwoPointTreeNode | Self |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef itk::LightObject | Superclass |
typedef itk::Point< double, VDimension > | PointType |
typedef std::list< ParticlePointIndexPair > | 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 & 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, itk::Indent indent) const |
const PointListType & | GetList() const |
PointListType & | GetList() |
Protected Functions
Name | |
---|---|
PowerOfTwoPointTreeNode() | |
~PowerOfTwoPointTreeNode() | |
PowerOfTwoPointTreeNode(const PowerOfTwoPointTreeNode & o) | |
const PowerOfTwoPointTreeNode & | operator=(const PowerOfTwoPointTreeNode & o) |
Public Attributes
Name | |
---|---|
constexpr static unsigned int | VDimension |
Detailed Description
class shapeworks::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 ParticleNeighborhoodr.h classes.
Public Types Documentation
typedef Self
typedef PowerOfTwoPointTreeNode shapeworks::PowerOfTwoPointTreeNode::Self;
Standard class typedefs.
typedef Pointer
typedef itk::SmartPointer<Self> shapeworks::PowerOfTwoPointTreeNode::Pointer;
typedef ConstPointer
typedef itk::SmartPointer<const Self> shapeworks::PowerOfTwoPointTreeNode::ConstPointer;
typedef Superclass
typedef itk::LightObject shapeworks::PowerOfTwoPointTreeNode::Superclass;
typedef PointType
typedef itk::Point<double, VDimension> shapeworks::PowerOfTwoPointTreeNode::PointType;
Point type stored in the leaf nodes.
typedef PointListType
typedef std::list<ParticlePointIndexPair> shapeworks::PowerOfTwoPointTreeNode::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 & 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,
itk::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
)
Public Attributes Documentation
variable VDimension
static constexpr static unsigned int VDimension = 3;
Updated on 2024-03-17 at 12:58:44 -0600