Slicer 5.9
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
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
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
71
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
98protected:
100 itkGetConstReferenceMacro( NeighborhoodRadius, RadiusType );
101 itkSetMacro( NeighborhoodRadius, RadiusType );
102
106 void SetParameters(const ParametersType &) override
107 {
108 }
109
112 void SetFixedParameters(const ParametersType &) override
113 {
114 }
115
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
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)