|
ITK
5.3.0
Insight Toolkit
|
Go to the documentation of this file.
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;
65 using typename Superclass::ScalarType;
68 using typename Superclass::FixedParametersType;
70 using typename Superclass::ParametersType;
74 using typename Superclass::JacobianType;
75 using typename Superclass::JacobianPositionType;
76 using typename Superclass::InverseJacobianPositionType;
90 using typename Superclass::InputCovariantVectorType;
91 using typename Superclass::OutputCovariantVectorType;
101 using typename Superclass::InputVnlVectorType;
102 using typename Superclass::OutputVnlVectorType;
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 "
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"
Class to hold and manage different parameter types used during optimization.
ImageBaseType::SpacingType VectorType
TParametersValueType ValueType
Control indentation during Print() invocation.
TParametersValueType ValueType
Light weight base class for most itk classes.
*par Constraints *The filter requires an image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents
virtual const char * GetNameOfClass() const
TParametersValueType ValueType
A templated class holding a n-Dimensional covariant vector.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....