Slicer 5.11
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 typedef typename Superclass::FixedParametersType FixedParametersType;
39
43 static Pointer New();
44
47 ::itk::LightObject::Pointer CreateAnother() const override;
48
51
52 OutputPointType TransformPoint(const InputPointType& inputPoint) const override;
53
54 void ComputeJacobianWithRespectToParameters(const InputPointType& p, JacobianType& jacobian) const override;
55
56#if !defined(ITK_LEGACY_REMOVE)
57 void ComputeJacobianWithRespectToPosition(const InputPointType& itkNotUsed(x), JacobianType& itkNotUsed(j)) const override
58 {
59 itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
60 }
61#endif
62
63 void ComputeJacobianWithRespectToPosition(const InputPointType& itkNotUsed(x), JacobianPositionType& itkNotUsed(j)) const override
64 {
65 itkExceptionMacro("ComputeJacobianWithRespectToPosition is not implemented for WarpTransform3D");
66 }
67
69
71
72 using Superclass::TransformVector;
74 OutputVectorType TransformVector(const InputVectorType&) const override { itkExceptionMacro("TransformVector(const InputVectorType&) is not implemented for WarpTransform3D"); }
75
78 {
79 itkExceptionMacro("TransformVector(const InputVnlVectorType&) is not implemented for WarpTransform3D");
80 }
81
82 using Superclass::TransformCovariantVector;
85 {
86 itkExceptionMacro("TransformCovariantVector(const InputCovariantVectorType& is not implemented for WarpTransform3D");
87 }
88
89protected:
92 itkSetMacro(NeighborhoodRadius, RadiusType);
93
97 void SetParameters(const ParametersType&) override {}
102
104 void operator=(const Self&); // purposely not implemented
105
109 // Vector< double , 3 > m_OutputSpacing ;
111};
112
113} // end namespace itk
114
115#ifndef ITK_MANUAL_INSTANTIATION
116# include "itkWarpTransform3D.hxx"
117#endif
118
119#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
Superclass::FixedParametersType FixedParametersType
itkGetConstReferenceMacro(NeighborhoodRadius, RadiusType)
ConstNeighborhoodIterator< DeformationImageType > ConstNeighborhoodIteratorType
Superclass::InputVectorType InputVectorType
Superclass::JacobianPositionType JacobianPositionType
OutputPointType TransformPoint(const InputPointType &inputPoint) const 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 SetFixedParameters(const FixedParametersType &) 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)