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>
43 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 3);
44 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 2);
48 itkStaticConstMacro(SpaceDimension,
unsigned int, 3);
49 itkStaticConstMacro(ParametersDimension,
unsigned int, 6);
55 itkGetStaticConstMacro(InputSpaceDimension),
56 itkGetStaticConstMacro(OutputSpaceDimension)>
Superclass;
69 typedef typename Superclass::ScalarType
ScalarType;
81 typedef Matrix<TParametersValueType, itkGetStaticConstMacro(InputSpaceDimension),
135 void SetParameters(
const ParametersType & parameters) ITK_OVERRIDE;
137 const ParametersType & GetParameters() const ITK_OVERRIDE;
150 m_Offset = offset;
return;
155 void SetRotation(
const VersorType & rotation);
168 m_FocalDistance = focalDistance;
174 return m_FocalDistance;
180 OutputPointType TransformPoint(
const InputPointType & point)
const ITK_OVERRIDE;
183 using Superclass::TransformVector;
188 <<
"TransformVector(const InputVectorType &) is not implemented for Rigid3DPerspectiveTransform");
194 <<
"TransformVector(const InputVnlVectorType &) is not implemented for Rigid3DPerspectiveTransform");
197 using Superclass::TransformCovariantVector;
203 "TransformCovariantVector(const InputCovariantVectorType &) is not implemented for Rigid3DPerspectiveTransform");
209 return m_RotationMatrix;
213 void ComputeMatrix();
217 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const ITK_OVERRIDE;
222 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition not yet implemented "
223 "for " << this->GetNameOfClass() );
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 ITK_OVERRIDE;
251 TParametersValueType m_FocalDistance;
264 #ifndef ITK_MANUAL_INSTANTIATION
265 #include "itkRigid3DPerspectiveTransform.hxx"
A templated class holding a M x N size Matrix.
Light weight base class for most itk classes.
Control indentation during Print() invocation.
TParametersValueType ValueType
TParametersValueType ValueType