18 #ifndef itkRigid2DTransform_h
19 #define itkRigid2DTransform_h
55 template <
typename TParametersValueType =
double>
74 static constexpr
unsigned int InputSpaceDimension = 2;
75 static constexpr
unsigned int OutputSpaceDimension = 2;
76 static constexpr
unsigned int ParametersDimension = 3;
79 using typename Superclass::ScalarType;
82 using typename Superclass::ParametersType;
83 using typename Superclass::ParametersValueType;
84 using typename Superclass::FixedParametersType;
85 using typename Superclass::FixedParametersValueType;
88 using typename Superclass::JacobianType;
89 using typename Superclass::JacobianPositionType;
90 using typename Superclass::InverseJacobianPositionType;
93 using typename Superclass::MatrixType;
94 using typename Superclass::MatrixValueType;
97 using typename Superclass::OffsetType;
101 using typename Superclass::InputVectorType;
102 using typename Superclass::OutputVectorType;
103 using typename Superclass::OutputVectorValueType;
106 using typename Superclass::InputCovariantVectorType;
107 using typename Superclass::OutputCovariantVectorType;
110 using typename Superclass::InputVnlVectorType;
111 using typename Superclass::OutputVnlVectorType;
114 using typename Superclass::InputPointType;
115 using typename Superclass::OutputPointType;
135 SetMatrix(
const MatrixType & matrix)
override;
150 SetMatrix(
const MatrixType & matrix,
const TParametersValueType tolerance);
160 Translate(
const OffsetType & offset,
bool pre =
false);
184 SetAngle(TParametersValueType angle);
186 itkGetConstReferenceMacro(Angle, TParametersValueType);
190 SetAngleInDegrees(TParametersValueType angle);
198 this->SetAngle(angle);
200 virtual const TParametersValueType &
216 SetParameters(
const ParametersType & parameters)
override;
226 const ParametersType &
227 GetParameters()
const override;
232 ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & j)
const override;
239 CloneInverseTo(
Pointer & result)
const;
243 GetInverse(
Self * inverse)
const;
246 InverseTransformBasePointer
247 GetInverseTransform()
const override;
254 CloneTo(
Pointer & result)
const;
258 SetIdentity()
override;
261 Rigid2DTransform(
unsigned int outputSpaceDimension,
unsigned int parametersDimension);
271 PrintSelf(std::ostream & os,
Indent indent)
const override;
277 ComputeMatrix()
override;
284 ComputeMatrixParameters()
override;
294 TParametersValueType m_Angle{};
299 template <
typename TParametersValueType>
303 itkWarningMacro(<<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() "
304 "to generate an inverse transform and then perform the transform using that inverted transform.");
305 return this->GetInverseMatrix() * (
point - this->GetOffset());
309 template <
typename TParametersValueType>
313 itkWarningMacro(<<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() "
314 "to generate an inverse transform and then perform the transform using that inverted transform.");
315 return this->GetInverseMatrix() * vect;
319 template <
typename TParametersValueType>
323 itkWarningMacro(<<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() "
324 "to generate an inverse transform and then perform the transform using that inverted transform.");
325 return this->GetInverseMatrix() * vect;
329 template <
typename TParametersValueType>
333 itkWarningMacro(<<
"BackTransform(): This method is slated to be removed from ITK. Instead, please use GetInverse() "
334 "to generate an inverse transform and then perform the transform using that inverted transform.");
335 return this->GetMatrix() * vect;
340 #ifndef ITK_MANUAL_INSTANTIATION
341 # include "itkRigid2DTransform.hxx"