17 #ifndef __itkAdvancedRigid3DTransform_h
18 #define __itkAdvancedRigid3DTransform_h
22 #include "itkExceptionObject.h"
23 #include "itkMatrix.h"
24 #include "itkVersor.h"
48 template <
class TScalarType=
double >
66 itkStaticConstMacro(SpaceDimension,
unsigned int, 3);
67 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 3);
68 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 3);
69 itkStaticConstMacro(ParametersDimension,
unsigned int, 12);
117 virtual void SetMatrix(
const MatrixType &matrix);
128 {
return this->GetMatrix(); }
141 { this->SetMatrix(matrix); }
150 void Translate(
const OffsetType & offset,
bool pre=
false);
163 InputPointType BackTransform(
const OutputPointType
165 InputVectorType BackTransform(
const OutputVectorType
167 InputVnlVectorType BackTransform(
const OutputVnlVectorType
169 InputCovariantVectorType BackTransform(
const OutputCovariantVectorType
176 bool MatrixIsOrthogonal(
const MatrixType & matrix,
double tol = 1e-10 );
180 unsigned int paramDim);
182 const OutputVectorType & offset);
189 void PrintSelf(std::ostream &os, Indent indent)
const;
193 void operator=(
const Self&);
201 #define ITK_TEMPLATE_AdvancedRigid3DTransform(_, EXPORT, x, y) namespace itk { \
202 _(1(class EXPORT AdvancedRigid3DTransform< ITK_TEMPLATE_1 x >)) \
203 namespace Templates { typedef AdvancedRigid3DTransform< ITK_TEMPLATE_1 x > AdvancedRigid3DTransform##y; } \
206 #if ITK_TEMPLATE_EXPLICIT
207 # include "Templates/itkAdvancedRigid3DTransform+-.h"
211 # include "itkAdvancedRigid3DTransform.txx"