18 #ifndef __itkRigid3DPerspectiveTransform_h
19 #define __itkRigid3DPerspectiveTransform_h
22 #include "vnl/vnl_quaternion.h"
38 class TScalarType =
double>
45 itkStaticConstMacro(InputSpaceDimension,
unsigned int, 3);
46 itkStaticConstMacro(OutputSpaceDimension,
unsigned int, 2);
50 itkStaticConstMacro(SpaceDimension,
unsigned int, 3);
51 itkStaticConstMacro(ParametersDimension,
unsigned int, 6);
57 itkGetStaticConstMacro(InputSpaceDimension),
58 itkGetStaticConstMacro(OutputSpaceDimension)>
Superclass;
71 typedef typename Superclass::ScalarType
ScalarType;
81 typedef Matrix<TScalarType, itkGetStaticConstMacro(InputSpaceDimension),
135 void SetParameters(
const ParametersType & parameters);
137 const ParametersType & GetParameters()
const;
150 m_Offset = offset;
return;
155 void SetRotation(
const VersorType & rotation);
166 void SetFocalDistance(TScalarType focalDistance)
168 m_FocalDistance = focalDistance;
172 double GetFocalDistance(
void)
const
174 return m_FocalDistance;
180 OutputPointType TransformPoint(
const InputPointType & point)
const;
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(
void);
217 virtual void ComputeJacobianWithRespectToParameters(
const InputPointType & p, JacobianType & jacobian)
const;
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);
237 void PrintSelf(std::ostream & os,
Indent indent)
const;
242 void operator=(
const Self &);
265 #define ITK_TEMPLATE_Rigid3DPerspectiveTransform(_, EXPORT, TypeX, TypeY) \
268 _( 1 ( class EXPORT Rigid3DPerspectiveTransform<ITK_TEMPLATE_1 TypeX> ) ) \
269 namespace Templates \
271 typedef Rigid3DPerspectiveTransform<ITK_TEMPLATE_1 TypeX> \
272 Rigid3DPerspectiveTransform##TypeY; \
276 #if ITK_TEMPLATE_EXPLICIT
283 #include "Templates/itkRigid3DPerspectiveTransform+-.h"
287 #include "itkRigid3DPerspectiveTransform.hxx"