17 #ifndef __itkAdvancedRigid2DTransform_h
18 #define __itkAdvancedRigid2DTransform_h
22 #include "itkExceptionObject.h"
57 template <
class TScalarType=
double >
75 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 2);
76 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 2);
77 itkStaticConstMacro(ParametersDimension,
unsigned int, 3);
133 virtual void SetMatrix(
const MatrixType & matrix );
141 { this->SetMatrix( matrix ); }
143 {
return this->GetMatrix(); }
153 void Translate(
const OffsetType &offset,
bool pre=
false);
163 inline InputPointType BackTransform(
const OutputPointType &point )
const;
164 inline InputVectorType BackTransform(
const OutputVectorType &vector)
const;
165 inline InputVnlVectorType BackTransform(
const OutputVnlVectorType &vector)
const;
167 inline InputCovariantVectorType BackTransform(
168 const OutputCovariantVectorType &vector)
const;
171 void SetAngle(TScalarType angle);
172 itkGetConstReferenceMacro( Angle, TScalarType );
175 void SetAngleInDegrees(TScalarType angle);
181 { this->SetAngle(angle); }
193 void SetParameters(
const ParametersType & parameters );
203 const ParametersType & GetParameters(
void )
const;
209 virtual void GetJacobian(
210 const InputPointType &,
212 NonZeroJacobianIndicesType & )
const;
218 void CloneInverseTo( Pointer & newinverse )
const;
224 void CloneTo( Pointer & clone )
const;
227 virtual void SetIdentity(
void);
240 void PrintSelf(std::ostream &os, Indent indent)
const;
246 virtual void ComputeMatrix(
void);
252 virtual void ComputeMatrixParameters(
void);
259 virtual void PrecomputeJacobianOfSpatialJacobian(
void);
264 void operator=(
const Self&);
272 template<
class TScalarType>
279 <<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() to generate an inverse transform and then perform the transform using that inverted transform."
281 return this->GetInverseMatrix() * (point - this->GetOffset());
285 template<
class TScalarType>
292 <<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() to generate an inverse transform and then perform the transform using that inverted transform."
294 return this->GetInverseMatrix() * vect;
298 template<
class TScalarType>
305 <<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() to generate an inverse transform and then perform the transform using that inverted transform."
307 return this->GetInverseMatrix() * vect;
312 template<
class TScalarType>
319 <<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() to generate an inverse transform and then perform the transform using that inverted transform."
321 return this->GetMatrix() * vect;
328 #define ITK_TEMPLATE_AdvancedRigid2DTransform(_, EXPORT, x, y) namespace itk { \
329 _(1(class EXPORT AdvancedRigid2DTransform< ITK_TEMPLATE_1 x >)) \
330 namespace Templates { typedef AdvancedRigid2DTransform< ITK_TEMPLATE_1 x > AdvancedRigid2DTransform##y; } \
333 #if ITK_TEMPLATE_EXPLICIT
334 # include "Templates/itkAdvancedRigid2DTransform+-.h"
338 # include "itkAdvancedRigid2DTransform.txx"