go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::AdvancedVersorTransform< TScalarType > Class Template Reference

#include <itkAdvancedVersorTransform.h>

Detailed Description

template<class TScalarType = double>
class itk::AdvancedVersorTransform< TScalarType >

AdvancedVersorTransform of a vector space (e.g. space coordinates)

This transform applies a rotation to the space. Rotation is about a user specified center.

The serialization of the optimizable parameters is an array of 3 elements representing the right part of the versor.

The serialization of the fixed parameters is an array of 3 elements defining the center of rotation.

Todo:
Need to make sure that the translation parameters in the baseclass cannot be set to non-zero values.

NB: SK: this class is just to have the AdvancedSimilarity3DTransform. It is not complete.

Definition at line 67 of file itkAdvancedVersorTransform.h.

+ Inheritance diagram for itk::AdvancedVersorTransform< TScalarType >:

Public Types

using AngleType = typename VersorType::ValueType
 
using AxisType = typename VersorType::VectorType
 
using CenterType = InputPointType
 
using ConstPointer = SmartPointer< const Self >
 
using InverseMatrixType = Matrix< TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension >
 
using MatrixType = Matrix< TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OffsetType = OutputVectorType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedVersorTransform
 
using Superclass = AdvancedRigid3DTransform< TScalarType >
 
using VersorType = Versor< TScalarType >
 
using VnlQuaternionType = vnl_quaternion< TScalarType >
 
- Public Types inherited from itk::AdvancedRigid3DTransform< TScalarType >
using CenterType = InputPointType
 
using ConstPointer = SmartPointer< const Self >
 
using InverseMatrixType = Matrix< TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension >
 
using MatrixType = Matrix< TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OffsetType = OutputVectorType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedRigid3DTransform
 
using Superclass = AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
 
using TranslationType = OutputVectorType
 
- Public Types inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >
using CenterType = InputPointType
 
using ConstPointer = SmartPointer< const Self >
 
using InverseMatrixType = Matrix< TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension >
 
using MatrixType = Matrix< TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension >
 
using OffsetType = OutputVectorType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedMatrixOffsetTransformBase
 
using Superclass = AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TranslationType = OutputVectorType
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
using ConstPointer = SmartPointer< const Self >
 
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
 
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
 
using MovingImageGradientType = OutputCovariantVectorType
 
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
 
using NonZeroJacobianIndicesType = std::vector< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedTransform
 
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
 
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
 
using Superclass = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformType = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 

Public Member Functions

virtual const char * GetClassName () const
 
void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const override
 
const ParametersType & GetParameters () const override
 
virtual const VersorType & GetVersor ()
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, 3)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, 3)
 
 itkStaticConstMacro (ParametersDimension, unsigned int, 3)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, 3)
 
void SetIdentity () override
 
void SetParameters (const ParametersType &parameters) override
 
void SetRotation (const AxisType &axis, AngleType angle)
 
void SetRotation (const VersorType &versor)
 
- Public Member Functions inherited from itk::AdvancedRigid3DTransform< TScalarType >
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedRigid3DTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, 3)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, 3)
 
 itkStaticConstMacro (ParametersDimension, unsigned int, 12)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, 3)
 
bool MatrixIsOrthogonal (const MatrixType &matrix, double tol=1e-10)
 
void SetMatrix (const MatrixType &matrix) override
 
void SetParameters (const ParametersType &parameters) override
 
- Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >
const InputPointType & GetCenter () const
 
const FixedParametersType & GetFixedParameters () const override
 
void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const override
 
const MatrixType & GetMatrix () const
 
const ParametersType & GetParameters () const override
 
void GetSpatialHessian (const InputPointType &, SpatialHessianType &) const override
 
void GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const override
 
TransformCategoryEnum GetTransformCategory () const override
 
const OutputVectorType & GetTranslation () const
 
bool IsLinear () const override
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 
 itkStaticConstMacro (ParametersDimension, unsigned int, NOutputDimensions *(NInputDimensions+1))
 
void SetCenter (const InputPointType &center)
 
void SetFixedParameters (const FixedParametersType &) override
 
void SetParameters (const ParametersType &parameters) override
 
void SetTranslation (const OutputVectorType &translation)
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const override
 
OutputPointType TransformPoint (const InputPointType &point) const override
 
OutputVectorType TransformVector (const InputVectorType &vector) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const override
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedRigid3DTransform< TScalarType >
static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >
static Pointer New ()
 

Protected Member Functions

 AdvancedVersorTransform ()
 
 AdvancedVersorTransform (const MatrixType &matrix, const OutputVectorType &offset)
 
 AdvancedVersorTransform (unsigned int paramDims)
 
void ComputeMatrix () override
 
void ComputeMatrixParameters () override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
void SetVarVersor (const VersorType &newVersor)
 
 ~AdvancedVersorTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedRigid3DTransform< TScalarType >
 AdvancedRigid3DTransform ()
 
 AdvancedRigid3DTransform (unsigned int paramDim)
 
void PrintSelf (std::ostream &s, Indent indent) const override
 
 ~AdvancedRigid3DTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedMatrixOffsetTransformBase (const unsigned int paramDims=ParametersDimension)
 
virtual void ComputeOffset ()
 
void ComputeTranslation ()
 
const OutputVectorType & GetOffset () const
 
void PrintSelf (std::ostream &s, Indent indent) const override
 
void SetVarMatrix (const MatrixType &matrix)
 
void SetVarTranslation (const OutputVectorType &translation)
 
 ~AdvancedMatrixOffsetTransformBase () override=default
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 

Private Member Functions

 AdvancedVersorTransform (const Self &other)
 
const Self & operator= (const Self &)
 

Private Attributes

VersorType m_Versor {}
 

Additional Inherited Members

- Protected Attributes inherited from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >
JacobianOfSpatialHessianType m_JacobianOfSpatialHessian {}
 
JacobianOfSpatialJacobianType m_JacobianOfSpatialJacobian {}
 
NonZeroJacobianIndicesType m_NonZeroJacobianIndices {}
 
SpatialHessianType m_SpatialHessian {}
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian { true }
 
bool m_HasNonZeroSpatialHessian { true }
 

Member Typedef Documentation

◆ AngleType

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::AngleType = typename VersorType::ValueType

Definition at line 119 of file itkAdvancedVersorTransform.h.

◆ AxisType

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::AxisType = typename VersorType::VectorType

Definition at line 118 of file itkAdvancedVersorTransform.h.

◆ CenterType

template<class TScalarType = double>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::CenterType = InputPointType

Typedefs.

Definition at line 103 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ ConstPointer

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::ConstPointer = SmartPointer<const Self>

Definition at line 74 of file itkAdvancedVersorTransform.h.

◆ InverseMatrixType

template<class TScalarType = double>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixType = Matrix<TScalarType, Self::InputSpaceDimension, Self::OutputSpaceDimension>

Standard inverse matrix type for this class.

Definition at line 102 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ MatrixType

template<class TScalarType = double>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixType = Matrix<TScalarType, Self::OutputSpaceDimension, Self::InputSpaceDimension>

Standard matrix type for this class.

Definition at line 101 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ OffsetType

template<class TScalarType = double>
using itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OffsetType = OutputVectorType

Definition at line 105 of file itkAdvancedMatrixOffsetTransformBase.h.

◆ Pointer

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::Pointer = SmartPointer<Self>

Definition at line 73 of file itkAdvancedVersorTransform.h.

◆ Self

Standard Self Typedef

Definition at line 71 of file itkAdvancedVersorTransform.h.

◆ Superclass

Definition at line 72 of file itkAdvancedVersorTransform.h.

◆ VersorType

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::VersorType = Versor<TScalarType>

Versor Type

Definition at line 117 of file itkAdvancedVersorTransform.h.

◆ VnlQuaternionType

template<class TScalarType = double>
using itk::AdvancedVersorTransform< TScalarType >::VnlQuaternionType = vnl_quaternion<TScalarType>

VnlQuaternion Type

Definition at line 114 of file itkAdvancedVersorTransform.h.

Constructor & Destructor Documentation

◆ AdvancedVersorTransform() [1/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform ( const MatrixType &  matrix,
const OutputVectorType &  offset 
)
protected

Construct an AdvancedVersorTransform object

◆ AdvancedVersorTransform() [2/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform ( unsigned int  paramDims)
protected

◆ AdvancedVersorTransform() [3/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform ( )
protected

◆ ~AdvancedVersorTransform()

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::~AdvancedVersorTransform ( )
overrideprotecteddefault

Destroy an AdvancedVersorTransform object

◆ AdvancedVersorTransform() [4/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::AdvancedVersorTransform ( const Self &  other)
private

Copy a AdvancedVersorTransform object

Member Function Documentation

◆ ComputeMatrix()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::ComputeMatrix ( )
overrideprotectedvirtual

Compute Matrix Compute the components of the rotation matrix in the superclass

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >.

◆ ComputeMatrixParameters()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::ComputeMatrixParameters ( )
overrideprotectedvirtual

◆ GetClassName()

template<class TScalarType = double>
virtual const char * itk::AdvancedVersorTransform< TScalarType >::GetClassName ( ) const
virtual

◆ GetJacobian()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::GetJacobian ( const InputPointType &  ,
JacobianType &  ,
NonZeroJacobianIndicesType &   
) const
overridevirtual

This method computes the Jacobian matrix of the transformation.

Reimplemented from itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >.

◆ GetParameters()

template<class TScalarType = double>
const ParametersType & itk::AdvancedVersorTransform< TScalarType >::GetParameters ( ) const
override

Get the Transformation Parameters.

◆ GetVersor()

template<class TScalarType = double>
virtual const VersorType & itk::AdvancedVersorTransform< TScalarType >::GetVersor ( )
virtual

◆ itkStaticConstMacro() [1/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro ( InputSpaceDimension  ,
unsigned int  ,
3   
)

◆ itkStaticConstMacro() [2/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned int  ,
3   
)

◆ itkStaticConstMacro() [3/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro ( ParametersDimension  ,
unsigned int  ,
3   
)

◆ itkStaticConstMacro() [4/4]

template<class TScalarType = double>
itk::AdvancedVersorTransform< TScalarType >::itkStaticConstMacro ( SpaceDimension  ,
unsigned int  ,
3   
)

Dimension of parameters

◆ New()

template<class TScalarType = double>
static Pointer itk::AdvancedVersorTransform< TScalarType >::New ( )
static

New macro for creation of through a Smart Pointer

◆ operator=()

template<class TScalarType = double>
const Self & itk::AdvancedVersorTransform< TScalarType >::operator= ( const Self &  )
private

Assignment operator

◆ PrintSelf()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

Print contents of a AdvancedVersorTransform

◆ SetIdentity()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::SetIdentity ( )
overridevirtual

◆ SetParameters()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::SetParameters ( const ParametersType &  parameters)
override

Set the transformation from a container of parameters This is typically used by optimizers.

There are 3 parameters. They represent the components of the right part of the versor. This can be seen as the components of the vector parallel to the rotation axis and multiplied by std::sin( angle / 2 ).

◆ SetRotation() [1/2]

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::SetRotation ( const AxisType &  axis,
AngleType  angle 
)

◆ SetRotation() [2/2]

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::SetRotation ( const VersorType &  versor)

Set the rotational part of the transform

◆ SetVarVersor()

template<class TScalarType = double>
void itk::AdvancedVersorTransform< TScalarType >::SetVarVersor ( const VersorType &  newVersor)
inlineprotected

Definition at line 163 of file itkAdvancedVersorTransform.h.

Field Documentation

◆ m_Versor

template<class TScalarType = double>
VersorType itk::AdvancedVersorTransform< TScalarType >::m_Versor {}
private

Versor containing the rotation

Definition at line 189 of file itkAdvancedVersorTransform.h.



Generated on 1740142828 for elastix by doxygen 1.9.8 elastix logo