18 #ifndef itkQuaternionRigidTransform_h
19 #define itkQuaternionRigidTransform_h
23 #include "vnl/vnl_quaternion.h"
47 template <
typename TParametersValueType =
double>
66 static constexpr
unsigned int InputSpaceDimension = 3;
67 static constexpr
unsigned int OutputSpaceDimension = 3;
68 static constexpr
unsigned int SpaceDimension = 3;
69 static constexpr
unsigned int ParametersDimension = 7;
72 using typename Superclass::ParametersType;
73 using typename Superclass::ParametersValueType;
74 using typename Superclass::FixedParametersType;
75 using typename Superclass::FixedParametersValueType;
76 using typename Superclass::JacobianType;
77 using typename Superclass::JacobianPositionType;
78 using typename Superclass::InverseJacobianPositionType;
79 using typename Superclass::ScalarType;
80 using typename Superclass::InputPointType;
81 using typename Superclass::OutputPointType;
82 using typename Superclass::InputVectorType;
83 using typename Superclass::OutputVectorType;
84 using typename Superclass::OutputVectorValueType;
85 using typename Superclass::InputVnlVectorType;
86 using typename Superclass::OutputVnlVectorType;
87 using typename Superclass::InputCovariantVectorType;
88 using typename Superclass::OutputCovariantVectorType;
89 using typename Superclass::MatrixType;
90 using typename Superclass::InverseMatrixType;
91 using typename Superclass::CenterType;
92 using typename Superclass::OffsetType;
93 using typename Superclass::TranslationType;
117 SetIdentity()
override;
125 SetParameters(
const ParametersType & parameters)
override;
127 const ParametersType &
128 GetParameters()
const override;
136 ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const override;
145 ComputeMatrix()
override;
148 ComputeMatrixParameters()
override;
153 m_Rotation = rotation;
156 const InverseMatrixType &
157 GetInverseMatrix()
const;
160 PrintSelf(std::ostream & os,
Indent indent)
const override;
168 #ifndef ITK_MANUAL_INSTANTIATION
169 # include "itkQuaternionRigidTransform.hxx"