18 #ifndef itkRigid3DPerspectiveTransform_h
19 #define itkRigid3DPerspectiveTransform_h
22 #include "vnl/vnl_quaternion.h"
37 template <
typename TParametersValueType =
double>
44 static constexpr
unsigned int InputSpaceDimension = 3;
45 static constexpr
unsigned int OutputSpaceDimension = 2;
48 static constexpr
unsigned int SpaceDimension = 3;
49 static constexpr
unsigned int ParametersDimension = 6;
133 SetParameters(
const ParametersType & parameters)
override;
135 const ParametersType &
136 GetParameters()
const override;
157 SetRotation(
const VersorType & rotation);
172 m_FocalDistance = focalDistance;
179 return m_FocalDistance;
186 TransformPoint(
const InputPointType & point)
const override;
189 using Superclass::TransformVector;
194 itkExceptionMacro(<<
"TransformVector(const InputVectorType &) is not implemented for Rigid3DPerspectiveTransform");
201 <<
"TransformVector(const InputVnlVectorType &) is not implemented for Rigid3DPerspectiveTransform");
204 using Superclass::TransformCovariantVector;
206 OutputCovariantVectorType
209 itkExceptionMacro(<<
"TransformCovariantVector(const InputCovariantVectorType &) is not implemented for "
210 "Rigid3DPerspectiveTransform");
217 return m_RotationMatrix;
227 ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const override;
232 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
234 << this->GetNameOfClass());
236 using Superclass::ComputeJacobianWithRespectToPosition;
239 itkGetConstReferenceMacro(FixedOffset, OffsetType);
240 itkSetMacro(FixedOffset, OffsetType);
244 itkSetMacro(CenterOfRotation, InputPointType);
245 itkGetConstReferenceMacro(CenterOfRotation, InputPointType);
252 PrintSelf(std::ostream & os,
Indent indent)
const override;
275 #ifndef ITK_MANUAL_INSTANTIATION
276 # include "itkRigid3DPerspectiveTransform.hxx"