Slicer  4.11
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::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