Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
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::JacobianPositionType JacobianPositionType;
24  typedef typename Superclass::InputPointType InputPointType;
25  typedef typename Superclass::InputVectorType InputVectorType;
26  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
27  typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
28  typedef typename Superclass::OutputPointType OutputPointType;
29  typedef typename Superclass::OutputVectorType OutputVectorType;
30  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
31  typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
32  typedef DeformationImageType::Pointer DeformationImagePointerType;
33  typedef SmartPointer<Self> Pointer;
34  typedef SmartPointer<const Self> ConstPointer;
35  typedef ConstNeighborhoodIterator<DeformationImageType> ConstNeighborhoodIteratorType;
36  typedef typename ConstNeighborhoodIteratorType::RadiusType RadiusType;
37  typedef typename Superclass::ParametersType ParametersType;
38 
42  static Pointer New();
43 
46  ::itk::LightObject::Pointer CreateAnother() const override;
47 
49  itkTypeMacro(WarpTransform3D, Transform);
50 
51  OutputPointType TransformPoint( const InputPointType & inputPoint ) const override;
52 
54  JacobianType & jacobian ) const override;
55 
57  const InputPointType & itkNotUsed(x),
58  JacobianType & itkNotUsed(j) ) const override
59  {
60  itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
61  }
62 
64  const InputPointType & itkNotUsed(x),
65  JacobianPositionType & itkNotUsed(j) ) const override
66  {
67  itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
68  }
69 
70  void SetDeformationField( DeformationImagePointerType deformationField );
71 
73  {
74  return m_DeformationField;
75  }
76 
77  using Superclass::TransformVector;
80  {
81  itkExceptionMacro("TransformVector(const InputVectorType &) is not implemented for WarpTransform3D");
82  }
83 
86  {
87  itkExceptionMacro("TransformVector(const InputVnlVectorType &) is not implemented for WarpTransform3D");
88  }
89 
90  using Superclass::TransformCovariantVector;
93  {
95  "TransformCovariantVector(const InputCovariantVectorType & is not implemented for WarpTransform3D");
96  }
97 
98 protected:
100  itkGetConstReferenceMacro( NeighborhoodRadius, RadiusType );
101  itkSetMacro( NeighborhoodRadius, RadiusType );
102 
106  void SetParameters(const ParametersType &) override
107  {
108  }
112  void SetFixedParameters(const ParametersType &) override
113  {
114  }
115 
116  WarpTransform3D();
117  void operator=(const Self &); // purposely not implemented
118 
122 // Vector< double , 3 > m_OutputSpacing ;
124 };
125 
126 } // end namespace itk
127 
128 #ifndef ITK_MANUAL_INSTANTIATION
129 #include "itkWarpTransform3D.txx"
130 #endif
131 
132 #endif
void ComputeJacobianWithRespectToParameters(const InputPointType &p, JacobianType &jacobian) const override
#define itkExceptionMacro(x)
const DeformationImagePointerType GetDeformationField() const
ConstNeighborhoodIterator< DeformationImageType > ConstNeighborhoodIteratorType
Superclass::JacobianPositionType JacobianPositionType
itkGetConstReferenceMacro(NeighborhoodRadius, RadiusType)
Superclass::JacobianType JacobianType
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
static Pointer New()
Simplified inverse ITK transforms.
itkSetMacro(NeighborhoodRadius, RadiusType)
Superclass::InputVectorType InputVectorType
::itk::LightObject::Pointer CreateAnother() const override
void ComputeJacobianWithRespectToPosition(const InputPointType &itkNotUsed(x), JacobianPositionType &itkNotUsed(j)) const override
DeformationImageType::Pointer DeformationImagePointerType
Superclass::ParametersType ParametersType
void SetDeformationField(DeformationImagePointerType deformationField)
DeformationImagePointerType m_DeformationField
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::InputPointType InputPointType
Superclass::InputCovariantVectorType InputCovariantVectorType
itkTypeMacro(WarpTransform3D, Transform)
OutputVnlVectorType TransformVector(const InputVnlVectorType &) const override
Superclass::OutputVectorType OutputVectorType
void operator=(const Self &)
SmartPointer< Self > Pointer
OutputVectorType TransformVector(const InputVectorType &) const override
Superclass::OutputPointType OutputPointType
SmartPointer< const Self > ConstPointer
void SetFixedParameters(const ParametersType &) override
ConstNeighborhoodIteratorType::RadiusType RadiusType
OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override
OutputPointType TransformPoint(const InputPointType &inputPoint) const override
void SetParameters(const ParametersType &) override
void ComputeJacobianWithRespectToPosition(const InputPointType &itkNotUsed(x), JacobianType &itkNotUsed(j)) const override
Transform< FieldDataType, 3, 3 > Superclass