Skip to content



#include <itkParticleRegionNeighborhood.h>

Inherits from itk::ParticleNeighborhood< 3 >, DataObject

Protected Classes

struct IteratorNodePair

Public Types

typedef ParticleRegionNeighborhood Self
typedef ParticleNeighborhood< VDimension > Superclass
typedef SmartPointer< Self > Pointer
typedef SmartPointer< const Self > ConstPointer
typedef WeakPointer< const Self > ConstWeakPointer
using shapeworks::ParticleDomain DomainType
typedef Superclass::PointType PointType
typedef Superclass::PointContainerType PointContainerType
typedef Superclass::PointVectorType PointVectorType
typedef PowerOfTwoPointTree< VDimension > PointTreeType

Protected Types

typedef ParticleContainer< IteratorNodePair > IteratorMapType

Public Functions

itkNewMacro(Self )
itkTypeMacro(ParticleRegionNeighborhood , ParticleNeighborhood )
itkStaticConstMacro(Dimension , unsigned int , VDimension )
virtual PointVectorType FindNeighborhoodPoints(const PointType & , int idx, double ) const
virtual void SetDomain(DomainType::Pointer p) override
itkSetMacro(TreeLevels , unsigned int )
itkGetMacro(TreeLevels , unsigned int )
void PrintSelf(std::ostream & os, Indent indent) const
virtual void AddPosition(const PointType & p, unsigned int idx, int threadId =0)
virtual void SetPosition(const PointType & p, unsigned int idx, int threadId =0)
virtual void RemovePosition(unsigned int idx, int threadId =0)

Protected Functions

virtual ~ParticleRegionNeighborhood()

Protected Attributes

PointTreeType::Pointer m_Tree
IteratorMapType::Pointer m_IteratorMap
unsigned int m_TreeLevels

Additional inherited members

Public Functions inherited from itk::ParticleNeighborhood< 3 >

itkSetObjectMacro(PointContainer , PointContainerType )
itkGetConstObjectMacro(PointContainer , PointContainerType )
DomainType::Pointer GetDomain() const

Protected Functions inherited from itk::ParticleNeighborhood< 3 >

virtual ~ParticleNeighborhood()

Detailed Description

template <unsigned int VDimension =3>
class itk::ParticleRegionNeighborhood;

ParticleRegionNeighborhood is a general purpose neighborhood object that computes neighborhoods based on distance from a point. It requires a domain that provides bounds information and a distance metric. This class uses a PowerOfTwoPointTree to cache point and index values so that FindNeighborhoodPoints is somewhat optimized.

Public Types Documentation

typedef Self

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

Standard class typedefs

typedef Superclass

typedef ParticleNeighborhood<VDimension> itk::ParticleRegionNeighborhood< VDimension >::Superclass;

typedef Pointer

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

typedef ConstPointer

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

typedef ConstWeakPointer

typedef WeakPointer<const Self> itk::ParticleRegionNeighborhood< VDimension >::ConstWeakPointer;

using DomainType

using itk::ParticleRegionNeighborhood< VDimension >::DomainType =  shapeworks::ParticleDomain;

typedef PointType

typedef Superclass::PointType itk::ParticleRegionNeighborhood< VDimension >::PointType;

Inherited typedefs from parent class.

typedef PointContainerType

typedef Superclass::PointContainerType itk::ParticleRegionNeighborhood< VDimension >::PointContainerType;

typedef PointVectorType

typedef Superclass::PointVectorType itk::ParticleRegionNeighborhood< VDimension >::PointVectorType;

typedef PointTreeType

typedef PowerOfTwoPointTree<VDimension> itk::ParticleRegionNeighborhood< VDimension >::PointTreeType;

PowerOfTwoTree type used to sort points according to location.

Protected Types Documentation

typedef IteratorMapType

typedef ParticleContainer<IteratorNodePair> itk::ParticleRegionNeighborhood< VDimension >::IteratorMapType;

Public Functions Documentation

function itkNewMacro


Method for creation through the object factory.

function itkTypeMacro

    ParticleRegionNeighborhood ,

Run-time type information (and related methods).

function itkStaticConstMacro

    Dimension ,
    unsigned int ,

Dimensionality of the domain of the particle system.

function FindNeighborhoodPoints

virtual PointVectorType FindNeighborhoodPoints(
    const PointType & ,
    int idx,
) const

Reimplements: itk::ParticleNeighborhood::FindNeighborhoodPoints

Compile a list of points that are within a specified radius of a given point. This implementation uses a PowerOfTwoTree to sort points according to location.

function SetDomain

virtual void SetDomain(
    DomainType::Pointer p
) override

Reimplements: itk::ParticleNeighborhood::SetDomain

Override SetDomain so that we can grab the region extent info and construct our tree.

function itkSetMacro

    TreeLevels ,
    unsigned int 

Set/Get the number of levels in the sorting tree.

function itkGetMacro

    TreeLevels ,
    unsigned int 

function PrintSelf

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

function AddPosition

virtual void AddPosition(
    const PointType & p,
    unsigned int idx,
    int threadId =0

Reimplements: itk::ParticleNeighborhood::AddPosition

For efficiency, itkNeighborhoods are not necessarily observers of itkParticleSystem, but have specific methods invoked for various events. AddPosition is called by itkParticleSystem when a particle location is added. SetPosition is called when a particle location is set. RemovePosition is called when a particle location is removed.

function SetPosition

virtual void SetPosition(
    const PointType & p,
    unsigned int idx,
    int threadId =0

Reimplements: itk::ParticleNeighborhood::SetPosition

function RemovePosition

virtual void RemovePosition(
    unsigned int idx,
    int threadId =0

Reimplements: itk::ParticleNeighborhood::RemovePosition

Protected Functions Documentation

function ParticleRegionNeighborhood

inline ParticleRegionNeighborhood()

function ~ParticleRegionNeighborhood

inline virtual ~ParticleRegionNeighborhood()

Protected Attributes Documentation

variable m_Tree

PointTreeType::Pointer m_Tree;

variable m_IteratorMap

IteratorMapType::Pointer m_IteratorMap;

variable m_TreeLevels

unsigned int m_TreeLevels;

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