18 #ifndef __itkPSMRegionNeighborhood_h 19 #define __itkPSMRegionNeighborhood_h 21 #include "itkPSMNeighborhood.h" 22 #include "itkPSMPointTree.h" 34 template <
unsigned int VDimension>
41 typedef SmartPointer<Self> Pointer;
42 typedef SmartPointer<const Self> ConstPointer;
43 typedef WeakPointer<const Self> ConstWeakPointer;
52 itkStaticConstMacro(Dimension,
unsigned int, VDimension);
57 typedef typename Superclass::DomainType
DomainType;
66 virtual PointVectorType FindNeighborhoodPoints(
const PointType &,
double)
const;
70 virtual void SetDomain( DomainType *p);
73 itkSetMacro(TreeLevels,
unsigned int);
74 itkGetMacro(TreeLevels,
unsigned int);
76 void PrintSelf(std::ostream& os, Indent indent)
const 78 os << indent <<
"m_TreeLevels = " << m_TreeLevels << std::endl;
79 m_Tree->PrintSelf(os, indent);
80 Superclass::PrintSelf(os, indent);
88 void AddPosition(
const PointType &p,
unsigned int idx,
int threadId = 0);
89 void SetPosition(
const PointType &p,
unsigned int idx,
int threadId = 0);
90 void RemovePosition(
unsigned int idx,
int threadId = 0);
95 m_Tree = PointTreeType::New();
96 m_IteratorMap = IteratorMapType::New();
106 typedef typename PointTreeType::PointListType::iterator IteratorType;
117 { this->operator=(o); }
120 Iterator = o.Iterator;
121 NodePointer = o.NodePointer;
125 IteratorType Iterator;
126 NodePointerType NodePointer;
132 typename PointTreeType::Pointer m_Tree;
133 typename IteratorMapType::Pointer m_IteratorMap;
134 unsigned int m_TreeLevels;
139 void operator=(
const Self&);
145 #ifndef ITK_MANUAL_INSTANTIATION 146 #include "itkPSMRegionNeighborhood.hxx"
NodeType::Pointer NodePointerType
Superclass::PointType PointType
Base class for defining the domain in which a particle system exists.
PSMRegionNeighborhood Self
std::vector< PSMPointIndexPair< VDimension > > PointVectorType
A container class that holds particle position information for the PSMParticleSystem class...
PSMPointTree< VDimension > PointTreeType