18 #ifndef __itkPSMShapeMatrixAttribute_h 19 #define __itkPSMShapeMatrixAttribute_h 21 #include "itkDataObject.h" 22 #include "itkWeakPointer.h" 23 #include "itkPSMAttribute.h" 24 #include "itkPSMContainer.h" 25 #include "itkPSMParticleSystem.h" 26 #include "vnl/vnl_matrix.h" 44 template <
class T,
unsigned int VDimension>
53 typedef SmartPointer<Self> Pointer;
54 typedef SmartPointer<const Self> ConstPointer;
55 typedef WeakPointer<const Self> ConstWeakPointer;
70 virtual void DomainAddEventCallback(Object *,
const EventObject &e);
73 virtual void ResizeMatrix(
int ,
int );
78 virtual void PositionAddEventCallback(Object *o,
const EventObject &e);
82 virtual void PositionSetEventCallback(Object *o,
const EventObject &e);
87 itkExceptionMacro(
"This Attribute class does not support particle position removal.");
93 { m_DomainsPerShape = i; }
94 int GetDomainsPerShape()
const 95 {
return m_DomainsPerShape; }
108 vnl_matrix<T>::operator=(m);
114 this->m_DefinedCallbacks.DomainAddEvent =
true;
115 this->m_DefinedCallbacks.PositionAddEvent =
true;
116 this->m_DefinedCallbacks.PositionSetEvent =
true;
117 this->m_DefinedCallbacks.PositionRemoveEvent =
true;
121 void PrintSelf(std::ostream& os, Indent indent)
const 122 { Superclass::PrintSelf(os,indent); }
124 int m_DomainsPerShape;
128 void operator=(
const Self&);
134 #ifndef ITK_MANUAL_INSTANTIATION 135 #include "itkPSMShapeMatrixAttribute.hxx" Each column describes a shape. A shape may be composed of m_DomainsPerShape domains (default 1)...
virtual void Initialize()
virtual void BeforeIteration()
virtual void SetMatrix(const vnl_matrix< T > &m)
virtual void AfterIteration()
Base class for PSMParticleSystem attribute classes.
virtual void PositionRemoveEventCallback(Object *, const EventObject &)
void SetDomainsPerShape(int i)