Slicer  4.10
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
itkWarpTransform3D.h
Go to the documentation of this file.
1 #ifndef itkWarpTransform3D_h
2 #define itkWarpTransform3D_h
3 
4 #include <itkTransform.h>
6 #include <itkImage.h>
7 #include "itkConstNeighborhoodIterator.h"
8 
9 namespace itk
10 {
15 template <class FieldData>
16 class WarpTransform3D : public Transform<FieldData, 3, 3>
17 {
18 public:
19  typedef FieldData FieldDataType;
21  typedef Transform<FieldDataType, 3, 3> Superclass;
22  typedef typename Superclass::JacobianType JacobianType;
23  typedef typename Superclass::InputPointType InputPointType;
24  typedef typename Superclass::InputVectorType InputVectorType;
25  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
26  typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
27  typedef typename Superclass::OutputPointType OutputPointType;
28  typedef typename Superclass::OutputVectorType OutputVectorType;
29  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
30  typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
31  typedef DeformationImageType::Pointer DeformationImagePointerType;
32  typedef SmartPointer<Self> Pointer;
33  typedef SmartPointer<const Self> ConstPointer;
34  typedef ConstNeighborhoodIterator<DeformationImageType> ConstNeighborhoodIteratorType;
35  typedef typename ConstNeighborhoodIteratorType::RadiusType RadiusType;
36  typedef typename Superclass::ParametersType ParametersType;
37 
41  static Pointer New(void);
42 
45  virtual::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE;
46 
48  itkTypeMacro(WarpTransform3D, Transform);
49 
50  OutputPointType TransformPoint( const InputPointType & inputPoint ) const ITK_OVERRIDE;
51 
52  virtual void ComputeJacobianWithRespectToParameters(const InputPointType & p, JacobianType & jacobian ) const ITK_OVERRIDE;
53 
55  const InputPointType & itkNotUsed(x),
56  JacobianType & itkNotUsed(j) ) const ITK_OVERRIDE
57  {
58  itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
59  }
60 
61  void SetDeformationField( DeformationImagePointerType deformationField );
62 
64  {
65  return m_DeformationField;
66  }
67 
68  using Superclass::TransformVector;
70  virtual OutputVectorType TransformVector(const InputVectorType &) const ITK_OVERRIDE
71  {
72  itkExceptionMacro("TransformVector(const InputVectorType &) is not implemented for WarpTransform3D");
73  }
74 
76  virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const ITK_OVERRIDE
77  {
78  itkExceptionMacro("TransformVector(const InputVnlVectorType &) is not implemented for WarpTransform3D");
79  }
80 
81  using Superclass::TransformCovariantVector;
84  {
86  "TransformCovariantVector(const InputCovariantVectorType & is not implemented for WarpTransform3D");
87  }
88 
89 protected:
91  itkGetConstReferenceMacro( NeighborhoodRadius, RadiusType );
92  itkSetMacro( NeighborhoodRadius, RadiusType );
93 
97  virtual void SetParameters(const ParametersType &) ITK_OVERRIDE
98  {
99  }
103  virtual void SetFixedParameters(const ParametersType &) ITK_OVERRIDE
104  {
105  }
106 
107  WarpTransform3D();
108  void operator=(const Self &); // purposely not implemented
109 
113 // Vector< double , 3 > m_OutputSpacing ;
115 };
116 
117 } // end namespace itk
118 
119 #ifndef ITK_MANUAL_INSTANTIATION
120 #include "itkWarpTransform3D.txx"
121 #endif
122 
123 #endif
#define itkExceptionMacro(x)
const DeformationImagePointerType GetDeformationField() const
ConstNeighborhoodIterator< DeformationImageType > ConstNeighborhoodIteratorType
virtual void ComputeJacobianWithRespectToParameters(const InputPointType &p, JacobianType &jacobian) const ITK_OVERRIDE
itkGetConstReferenceMacro(NeighborhoodRadius, RadiusType)
Superclass::JacobianType JacobianType
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const ITK_OVERRIDE
Simplified inverse ITK transforms.
virtual void SetParameters(const ParametersType &) ITK_OVERRIDE
itkSetMacro(NeighborhoodRadius, RadiusType)
Superclass::InputVectorType InputVectorType
virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const ITK_OVERRIDE
virtual ::itk::LightObject::Pointer CreateAnother(void) const ITK_OVERRIDE
DeformationImageType::Pointer DeformationImagePointerType
Superclass::ParametersType ParametersType
void SetDeformationField(DeformationImagePointerType deformationField)
static Pointer New(void)
DeformationImagePointerType m_DeformationField
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::InputPointType InputPointType
Superclass::InputCovariantVectorType InputCovariantVectorType
itkTypeMacro(WarpTransform3D, Transform)
virtual OutputVectorType TransformVector(const InputVectorType &) const ITK_OVERRIDE
Superclass::OutputVectorType OutputVectorType
OutputPointType TransformPoint(const InputPointType &inputPoint) const ITK_OVERRIDE
void operator=(const Self &)
SmartPointer< Self > Pointer
Superclass::OutputPointType OutputPointType
SmartPointer< const Self > ConstPointer
ConstNeighborhoodIteratorType::RadiusType RadiusType
virtual void ComputeJacobianWithRespectToPosition(const InputPointType &itkNotUsed(x), JacobianType &itkNotUsed(j)) const ITK_OVERRIDE
Transform< FieldDataType, 3, 3 > Superclass
virtual void SetFixedParameters(const ParametersType &) ITK_OVERRIDE