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);
132 virtual void SetMatrix(
const MatrixType & matrix );
140 { this->SetMatrix( matrix ); }
142 {
return this->GetMatrix(); }
152 void Translate(
const OffsetType &offset,
bool pre=
false);
162 inline InputPointType BackTransform(
const OutputPointType &point )
const;
163 inline InputVectorType BackTransform(
const OutputVectorType &vector)
const;
164 inline InputVnlVectorType BackTransform(
const OutputVnlVectorType &vector)
const;
166 inline InputCovariantVectorType BackTransform(
167 const OutputCovariantVectorType &vector)
const;
170 void SetAngle(TScalarType angle);
171 itkGetConstReferenceMacro( Angle, TScalarType );
174 void SetAngleInDegrees(TScalarType angle);
180 { this->SetAngle(angle); }
192 void SetParameters(
const ParametersType & parameters );
202 const ParametersType & GetParameters(
void )
const;
208 virtual void GetJacobian(
209 const InputPointType &,
211 NonZeroJacobianIndicesType & )
const;
217 void CloneInverseTo( Pointer & newinverse )
const;
223 void CloneTo( Pointer & clone )
const;
226 virtual void SetIdentity(
void);
232 unsigned int parametersDimension);
239 void PrintSelf(std::ostream &os, Indent indent)
const;
245 virtual void ComputeMatrix(
void);
251 virtual void ComputeMatrixParameters(
void);
258 virtual void PrecomputeJacobianOfSpatialJacobian(
void);
263 void operator=(
const Self&);
271 template<
class TScalarType>
278 <<
"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."
280 return this->GetInverseMatrix() * (point - this->GetOffset());
284 template<
class TScalarType>
291 <<
"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."
293 return this->GetInverseMatrix() * vect;
297 template<
class TScalarType>
304 <<
"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."
306 return this->GetInverseMatrix() * vect;
311 template<
class TScalarType>
318 <<
"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."
320 return this->GetMatrix() * vect;
327 #define ITK_TEMPLATE_AdvancedRigid2DTransform(_, EXPORT, x, y) namespace itk { \
328 _(1(class EXPORT AdvancedRigid2DTransform< ITK_TEMPLATE_1 x >)) \
329 namespace Templates { typedef AdvancedRigid2DTransform< ITK_TEMPLATE_1 x > AdvancedRigid2DTransform##y; } \
332 #if ITK_TEMPLATE_EXPLICIT
333 # include "Templates/itkAdvancedRigid2DTransform+-.h"
337 # include "itkAdvancedRigid2DTransform.txx"