18 #ifndef __itkQuaternionRigidTransform_h
19 #define __itkQuaternionRigidTransform_h
23 #include "vnl/vnl_quaternion.h"
47 template <
class TScalarType =
double>
66 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 3);
67 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 3);
68 itkStaticConstMacro(SpaceDimension,
unsigned int, 3);
69 itkStaticConstMacro(ParametersDimension,
unsigned int, 7);
111 virtual void SetIdentity(
void);
118 void SetParameters(
const ParametersType & parameters);
120 virtual const ParametersType & GetParameters()
const;
127 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const;
137 void ComputeMatrix();
139 void ComputeMatrixParameters();
143 m_Rotation = rotation;
146 const InverseMatrixType & GetInverseMatrix(
void)
const;
148 void PrintSelf(std::ostream & os,
Indent indent)
const;
152 void operator=(
const Self &);
160 #define ITK_TEMPLATE_QuaternionRigidTransform(_, EXPORT, TypeX, TypeY) \
163 _( 1 ( class EXPORT QuaternionRigidTransform<ITK_TEMPLATE_1 TypeX> ) ) \
164 namespace Templates \
166 typedef QuaternionRigidTransform<ITK_TEMPLATE_1 TypeX> \
167 QuaternionRigidTransform##TypeY; \
171 #if ITK_TEMPLATE_EXPLICIT
172 #include "Templates/itkQuaternionRigidTransform+-.h"
176 #include "itkQuaternionRigidTransform.hxx"