18 #ifndef itkRigid3DPerspectiveTransform_h
19 #define itkRigid3DPerspectiveTransform_h
22 #include "vnl/vnl_quaternion.h"
37 template<
typename TParametersValueType=
double>
39 public Transform<TParametersValueType, 3, 2>
45 static constexpr
unsigned int InputSpaceDimension = 3;
46 static constexpr
unsigned int OutputSpaceDimension = 2;
49 static constexpr
unsigned int SpaceDimension = 3;
50 static constexpr
unsigned int ParametersDimension = 6;
55 Self::InputSpaceDimension,
56 Self::OutputSpaceDimension>;
83 Self::InputSpaceDimension>;
134 void SetParameters(
const ParametersType & parameters)
override;
136 const ParametersType & GetParameters()
const override;
149 m_Offset = offset;
return;
154 void SetRotation(
const VersorType & rotation);
167 m_FocalDistance = focalDistance;
173 return m_FocalDistance;
179 OutputPointType TransformPoint(
const InputPointType & point)
const override;
182 using Superclass::TransformVector;
187 <<
"TransformVector(const InputVectorType &) is not implemented for Rigid3DPerspectiveTransform");
193 <<
"TransformVector(const InputVnlVectorType &) is not implemented for Rigid3DPerspectiveTransform");
196 using Superclass::TransformCovariantVector;
202 "TransformCovariantVector(const InputCovariantVectorType &) is not implemented for Rigid3DPerspectiveTransform");
208 return m_RotationMatrix;
212 void ComputeMatrix();
216 void ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const override;
221 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
222 "for " << this->GetNameOfClass() );
224 using Superclass::ComputeJacobianWithRespectToPosition;
227 itkGetConstReferenceMacro(FixedOffset, OffsetType);
228 itkSetMacro(FixedOffset, OffsetType);
232 itkSetMacro(CenterOfRotation, InputPointType);
233 itkGetConstReferenceMacro(CenterOfRotation, InputPointType);
239 void PrintSelf(std::ostream & os,
Indent indent)
const override;
262 #ifndef ITK_MANUAL_INSTANTIATION
263 #include "itkRigid3DPerspectiveTransform.hxx"
Light weight base class for most itk classes.
TParametersValueType ValueType
TParametersValueType ValueType
Control indentation during Print() invocation.
ImageBaseType::SpacingType VectorType