Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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
9namespace itk
10{
15template <class FieldData>
16class WarpTransform3D : public Transform<FieldData, 3, 3>
17{
18public:
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
50
51 OutputPointType TransformPoint(const InputPointType& inputPoint) const override;
52
53 void ComputeJacobianWithRespectToParameters(const InputPointType& p, JacobianType& jacobian) const override;
54
55 void ComputeJacobianWithRespectToPosition(const InputPointType& itkNotUsed(x), JacobianType& itkNotUsed(j)) const override
56 {
57 itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
58 }
59
60 void ComputeJacobianWithRespectToPosition(const InputPointType& itkNotUsed(x), JacobianPositionType& itkNotUsed(j)) const override
61 {
62 itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
63 }
64
66
68
69 using Superclass::TransformVector;
71 OutputVectorType TransformVector(const InputVectorType&) const override { itkExceptionMacro("TransformVector(const InputVectorType&) is not implemented for WarpTransform3D"); }
72
75 {
76 itkExceptionMacro("TransformVector(const InputVnlVectorType&) is not implemented for WarpTransform3D");
77 }
78
79 using Superclass::TransformCovariantVector;
82 {
83 itkExceptionMacro("TransformCovariantVector(const InputCovariantVectorType& is not implemented for WarpTransform3D");
84 }
85
86protected:
89 itkSetMacro(NeighborhoodRadius, RadiusType);
90
94 void SetParameters(const ParametersType&) override {}
98 void SetFixedParameters(const ParametersType&) override {}
99
101 void operator=(const Self&); // purposely not implemented
102
106 // Vector< double , 3 > m_OutputSpacing ;
108};
109
110} // end namespace itk
111
112#ifndef ITK_MANUAL_INSTANTIATION
113# include "itkWarpTransform3D.txx"
114#endif
115
116#endif
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::InputPointType InputPointType
const DeformationImagePointerType GetDeformationField() const
Superclass::InputCovariantVectorType InputCovariantVectorType
void operator=(const Self &)
itkSetMacro(NeighborhoodRadius, RadiusType)
Superclass::ParametersType ParametersType
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
itkGetConstReferenceMacro(NeighborhoodRadius, RadiusType)
ConstNeighborhoodIterator< DeformationImageType > ConstNeighborhoodIteratorType
Superclass::InputVectorType InputVectorType
Superclass::JacobianPositionType JacobianPositionType
OutputPointType TransformPoint(const InputPointType &inputPoint) const override
void SetFixedParameters(const ParametersType &) override
Superclass::OutputCovariantVectorType OutputCovariantVectorType
itkTypeMacro(WarpTransform3D, Transform)
DeformationImageType::Pointer DeformationImagePointerType
Superclass::OutputVectorType OutputVectorType
ConstNeighborhoodIteratorType::RadiusType RadiusType
void ComputeJacobianWithRespectToParameters(const InputPointType &p, JacobianType &jacobian) const override
void ComputeJacobianWithRespectToPosition(const InputPointType &itkNotUsed(x), JacobianPositionType &itkNotUsed(j)) const override
void SetParameters(const ParametersType &) override
Transform< FieldDataType, 3, 3 > Superclass
Superclass::OutputPointType OutputPointType
::itk::LightObject::Pointer CreateAnother() const override
OutputVnlVectorType TransformVector(const InputVnlVectorType &) const override
void SetDeformationField(DeformationImagePointerType deformationField)
Superclass::OutputVnlVectorType OutputVnlVectorType
DeformationImagePointerType m_DeformationField
static Pointer New()
OutputVectorType TransformVector(const InputVectorType &) const override
Superclass::JacobianType JacobianType
OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override
void ComputeJacobianWithRespectToPosition(const InputPointType &itkNotUsed(x), JacobianType &itkNotUsed(j)) const override
Simplified inverse ITK transforms.
#define itkExceptionMacro(x)