NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions > Class Template Referenceabstract

Matrix transformations, with switchable Degrees Of Freedom. More...

Inheritance diagram for itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >:
Inheritance graph
[legend]
Collaboration diagram for itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >:
Collaboration graph
[legend]

Public Types

typedef
SwitchableAffineTransform
< TScalarType,
NInputDimensions,
NInputDimensions > 
Self
 
typedef UCLBaseTransform
< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::ParametersType ParametersType
 
typedef Superclass::JacobianType JacobianType
 
typedef Superclass::ScalarType ScalarType
 
typedef Vector< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension)> 
InputVectorType
 
typedef Vector< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputVectorType
 
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension)> 
InputCovariantVectorType
 
typedef CovariantVector
< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputCovariantVectorType
 
typedef vnl_vector_fixed
< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension)> 
InputVnlVectorType
 
typedef vnl_vector_fixed
< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputVnlVectorType
 
typedef Point< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension)> 
InputPointType
 
typedef Point< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputPointType
 
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
 
typedef Matrix< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
InverseMatrixType
 
typedef Matrix< TScalarType,
NOutputDimensions+1,
NInputDimensions+1 > 
FullAffineMatrixType
 
typedef AffineTransform
< TScalarType,
NInputDimensions > 
FullAffineTransformType
 
typedef
FullAffineTransformType::Pointer 
FullAffineTransformPointer
 
typedef InputPointType CenterType
 
typedef Array< double > TranslationType
 
typedef Array< double > RotationType
 
typedef Array< double > ScaleType
 
typedef Array< double > SkewType
 
typedef Array< double > RelativeParameterWeightingType
 
- Public Types inherited from itk::UCLBaseTransform< TScalarType, NInputDimensions, NOutputDimensions >
typedef UCLBaseTransform Self
 
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::InputPointType InputPointType
 
typedef Superclass::OutputPointType OutputPointType
 
typedef Superclass::JacobianType JacobianType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 
 itkStaticConstMacro (ParametersDimension, unsigned int,(NInputDimensions+1 *NOutputDimensions+1)-1)
 
void SetIdentity (void)
 
const MatrixTypeGetMatrix () const
 
const OutputVectorTypeGetOffset (void) const
 
FullAffineTransformTypeGetFullAffineTransform ()
 
FullAffineMatrixType GetFullAffineMatrix () const
 
void SetFullAffineMatrix (const FullAffineMatrixType &fullAffineMatrix)
 
void HalfTransformationMatrix ()
 
void SetCenter (const InputPointType &center)
 
const InputPointTypeGetCenter () const
 
void SetTranslation (const TranslationType &translation)
 
const TranslationTypeGetTranslation (void) const
 
void SetRotation (const RotationType &rotation)
 
const RotationTypeGetRotation (void) const
 
void SetScale (const ScaleType &scale)
 
const ScaleTypeGetScale (void) const
 
void SetSkew (const SkewType &skew)
 
const SkewTypeGetSkew (void) const
 
void SetTranslationRelativeWeighting (const RelativeParameterWeightingType &weighting)
 
void SetTranslationRelativeWeighting (const double &weighting)
 
void SetRotationRelativeWeighting (const RelativeParameterWeightingType &weighting)
 
void SetRotationRelativeWeighting (const double &weighting)
 
void SetScaleRelativeWeighting (const RelativeParameterWeightingType &weighting)
 
void SetScaleRelativeWeighting (const double &weighting)
 
void SetSkewRelativeWeighting (const RelativeParameterWeightingType &weighting)
 
void SetSkewRelativeWeighting (const double &weighting)
 
void SetParameters (const ParametersType &parameters)
 
const ParametersTypeGetParameters (void) const
 
void SetFixedParameters (const ParametersType &parameters)
 
const ParametersTypeGetFixedParameters () const
 
const
RelativeParameterWeightingType
GetRelativeParameterWeightingFactors ()
 
OutputPointType TransformPoint (const InputPointType &point) const
 
OutputVectorType TransformVector (const InputVectorType &vector) const
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const
 
virtual void SetOptimiseRotation (bool _arg)
 
virtual bool GetOptimiseRotation () const
 
virtual void OptimiseRotationOn ()
 
virtual void OptimiseRotationOff ()
 
virtual void SetOptimiseTranslation (bool _arg)
 
virtual bool GetOptimiseTranslation () const
 
virtual void OptimiseTranslationOn ()
 
virtual void OptimiseTranslationOff ()
 
virtual void SetOptimiseScale (bool _arg)
 
virtual bool GetOptimiseScale () const
 
virtual void OptimiseScaleOn ()
 
virtual void OptimiseScaleOff ()
 
virtual void SetOptimiseSkew (bool _arg)
 
virtual bool GetOptimiseSkew () const
 
virtual void OptimiseSkewOn ()
 
virtual void OptimiseSkewOff ()
 
virtual
itk::TransformBase::NumberOfParametersType 
GetNumberOfParameters () const
 
unsigned int GetNumberOfDOF () const
 
void SetNumberOfDOF (int number)
 
void SetRigid ()
 
void SetRigidPlusScale ()
 
void SetFullAffine ()
 
void SetJustScale ()
 
void SetJustRotation ()
 
void SetJustTranslation ()
 
virtual const JacobianType GetJacobian (const InputPointType &point) const =0
 
bool GetInverse (Self *inverse) const
 
virtual void TransformPoint (const InputPointType &input, OutputPointType &output) const
 
- Public Member Functions inherited from itk::UCLBaseTransform< TScalarType, NInputDimensions, NOutputDimensions >
virtual void TransformPoint (const InputPointType &input, OutputPointType &output) const =0
 
virtual bool GetInv (UCLBaseTransform *inverse) const =0
 

Protected Member Functions

 SwitchableAffineTransform (unsigned int outputDims, unsigned int paramDims)
 
 SwitchableAffineTransform ()
 
virtual ~SwitchableAffineTransform ()=0
 
void PrintSelf (std::ostream &s, Indent indent) const
 
virtual void ComputeMatrixAndOffset (void)
 
virtual void ComputeParametersFromMatrixAndOffset (void)
 
void SetDefaultRelativeParameterWeightings (void)
 
const InverseMatrixTypeGetInverseMatrix (void) const
 
const InverseMatrixTypeGetVarInverseMatrix (void) const
 
void SetVarInverseMatrix (const InverseMatrixType &matrix) const
 
bool InverseMatrixIsOld (void) const
 
- Protected Member Functions inherited from itk::UCLBaseTransform< TScalarType, NInputDimensions, NOutputDimensions >
 UCLBaseTransform ()
 
 UCLBaseTransform (unsigned int Dimension, itk::TransformBase::NumberOfParametersType NumberOfParameters)
 
virtual ~UCLBaseTransform ()
 

Protected Attributes

MatrixType m_Matrix
 
OutputVectorType m_Offset
 

Detailed Description

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
class itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >

Matrix transformations, with switchable Degrees Of Freedom.

There are three template parameters for this class:

ScalarT The type to be used for scalar numeric values. Either float or double.

NInputDimensions The number of dimensions of the input vector space.

NOutputDimensions The number of dimensions of the output vector space.

This class provides several methods for setting the matrix and offset defining the transform. To support the registration framework, the transform parameters can also be set as an Array<double> of size (NInputDimension + 1) * NOutputDimension using method SetParameters(). The first (NOutputDimension x NInputDimension) parameters defines the matrix in row-major order (where the column index varies the fastest). The last NOutputDimension parameters defines the translation in each dimensions.

Member Typedef Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef InputPointType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::CenterType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<const Self> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix<TScalarType, NOutputDimensions+1, NInputDimensions+1> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::FullAffineMatrixType

Full affine matrix type, and transform, so we can output it using TransformWriters.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef FullAffineTransformType::Pointer itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::FullAffineTransformPointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef AffineTransform<TScalarType, NInputDimensions> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::FullAffineTransformType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputCovariantVectorType

Standard covariant vector type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputPointType

Standard coordinate point type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVectorType

Standard vector type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InputVnlVectorType

Standard vnl_vector type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix<TScalarType, itkGetStaticConstMacro(InputSpaceDimension), itkGetStaticConstMacro(OutputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixType

Standard inverse matrix type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::JacobianType

Jacobian Type

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::MatrixType

Standard matrix type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ParametersType

Parameters Type

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<Self> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::Pointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Array<double> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::RelativeParameterWeightingType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Array<double> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::RotationType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ScalarType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ScalarType

Standard scalar type for this class

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Array<double> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ScaleType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SwitchableAffineTransform<TScalarType, NInputDimensions, NInputDimensions> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::Self

Standard typedefs

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Array<double> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SkewType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef UCLBaseTransform< TScalarType, NInputDimensions, NOutputDimensions > itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::Superclass
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Array<double> itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TranslationType

Constructor & Destructor Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SwitchableAffineTransform ( unsigned int  outputDims,
unsigned int  paramDims 
)
protected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SwitchableAffineTransform ( )
protected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::~SwitchableAffineTransform ( )
protectedpure virtual

Destroy an SwitchableAffineTransform object

Member Function Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ComputeMatrixAndOffset ( void  )
inlineprotectedvirtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::ComputeParametersFromMatrixAndOffset ( void  )
inlineprotectedvirtual

Compute the parameters from the matrix.

Reimplemented in itk::EulerAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InputPointType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetCenter ( ) const
inline

Get center of rotation, in millimetre (world coordinates).

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const char* itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetClassName ( ) const
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ParametersType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetFixedParameters ( ) const
inline

Fixed parameters that are not used in the optimisation, but they are relevent for defining the transformation, e.g. dof, center. Mainly used for saving/loading.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
FullAffineMatrixType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetFullAffineMatrix ( ) const
inline

Get the full affine matrix.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
FullAffineTransformType* itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetFullAffineTransform ( )
inline

Get the full affine transform.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetInverse ( Self inverse) const

Create inverse of an affine transformation.

This populates the parameters an affine transform such that the transform is the inverse of self.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InverseMatrixType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetInverseMatrix ( void  ) const
protected
Deprecated:
Use GetInverse instead.
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const JacobianType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType point) const
pure virtual

Compute the Jacobian of the transformation

This method computes the Jacobian matrix of the transformation. given point or vector, returning the transformed point or vector. The rank of the Jacobian will also indicate if the transform is invertible at this point.

Note that the size of this will depend on how many parameters being optimised.

Implemented in itk::EulerAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const MatrixType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetMatrix ( ) const
inline

Get rotation matrix.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
unsigned int itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfDOF ( ) const

Returns the number of DOF actually being optimised.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual itk::TransformBase::NumberOfParametersType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetNumberOfParameters ( void  ) const
inlinevirtual

The number of parameters is the number of Dof.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const OutputVectorType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetOffset ( void  ) const
inline

Get offset (the bit of the matrix that isn't the rotation matrix).

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetOptimiseRotation ( ) const
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetOptimiseScale ( ) const
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetOptimiseSkew ( ) const
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetOptimiseTranslation ( ) const
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ParametersType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetParameters ( void  ) const

Get the Transformation Parameters. This will return a vector whose length is equal to the number of degrees of freedom being optimised. In general the order will be: [0-2] translation [3-5] rotation [6-8] scale [9-11] skews.

But say you are optimising translation and scale, you will get 6 numbers, copied from 0-2 and 6-8 from the above.

Or, if you are doing just scale, you will get 3 numbers, copied from 6-8.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const RelativeParameterWeightingType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetRelativeParameterWeightingFactors ( )

Get the relative parameter weightings to be used by the optimiser according to the number of dof.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const RotationType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetRotation ( void  ) const
inline

Get rotation component, units depend on subclass.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ScaleType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetScale ( void  ) const
inline

Get scale component, units depend on subclass.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const SkewType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetSkew ( void  ) const
inline

Get Skew component.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const TranslationType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetTranslation ( void  ) const
inline

Get translation component, in millimetre (world coordinates).

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InverseMatrixType& itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::GetVarInverseMatrix ( void  ) const
inlineprotected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::HalfTransformationMatrix ( )
inline

Set the transformation matrix to its square root.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixIsOld ( void  ) const
inlineprotected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( InputSpaceDimension  ,
unsigned  int,
NInputDimensions   
)

Dimension of the domain space.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned  int,
NOutputDimensions   
)
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( ParametersDimension  ,
unsigned  int,
(NInputDimensions+1 *NOutputDimensions+1)-  1 
)
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseRotationOff ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseRotationOn ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseScaleOff ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseScaleOn ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseSkewOff ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseSkewOn ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseTranslationOff ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::OptimiseTranslationOn ( )
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::PrintSelf ( std::ostream &  s,
Indent  indent 
) const
protected

Print contents of an SwitchableAffineTransform

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetCenter ( const InputPointType center)
inline

Set center of rotation, in millimetre (world coordinates).

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetDefaultRelativeParameterWeightings ( void  )
protected

Set up default values for the relative parameter weightings.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetFixedParameters ( const ParametersType parameters)
inline

Fixed parameters that are not used in the optimisation, but they are relavent for defining the transformation, e.g. dof, center. Mainly used for saving/loading.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetFullAffine ( )
inline

Sets the transform to optimise rot, trans, and skews.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetFullAffineMatrix ( const FullAffineMatrixType fullAffineMatrix)
inline

Get the full affine matrix.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetIdentity ( void  )

Set the transformation to an Identity

This sets the rotation matrix to identity and the Offset to null, and resizes stuff.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetJustRotation ( )
inline

Sets the transform to optimise just rotation.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetJustScale ( )
inline

Sets the transform to optimise just scale.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetJustTranslation ( )
inline

Sets the transform to optimise just translation.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetNumberOfDOF ( int  number)

Sets the number of DOF actually being optimised.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetOptimiseRotation ( bool  _arg)
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetOptimiseScale ( bool  _arg)
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetOptimiseSkew ( bool  _arg)
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetOptimiseTranslation ( bool  _arg)
virtual
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetParameters ( const ParametersType parameters)

Set the transformation from a container of parameters. Internally, this class will set the right parameters, depending on which degrees of freedom are being optimised. It will throw an exception if the wrong number if the vector is the wrong length.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetRigid ( )
inline

Sets the transform to only optimise rotations and translations.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetRigidPlusScale ( )
inline

Sets the transform to optimise rotations, translations and scale.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetRotation ( const RotationType rotation)
inline

Set Rotation, units depend on subclass.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetRotationRelativeWeighting ( const RelativeParameterWeightingType weighting)
inline

Set rotation relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetRotationRelativeWeighting ( const double &  weighting)
inline

Set rotation relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetScale ( const ScaleType scale)
inline

Set Scale, units depend on subclass.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetScaleRelativeWeighting ( const RelativeParameterWeightingType weighting)
inline

Set scale relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetScaleRelativeWeighting ( const double &  weighting)
inline

Set scale relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetSkew ( const SkewType skew)
inline

Set Skew.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetSkewRelativeWeighting ( const RelativeParameterWeightingType weighting)
inline

Set skew relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetSkewRelativeWeighting ( const double &  weighting)
inline

Set skew relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTranslation ( const TranslationType translation)
inline

Set translation, in millimetre (world coordinates).

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTranslationRelativeWeighting ( const RelativeParameterWeightingType weighting)
inline

Set translation relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetTranslationRelativeWeighting ( const double &  weighting)
inline

Set translation relative parameter weightings to be used by optimizer

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::SetVarInverseMatrix ( const InverseMatrixType matrix) const
inlineprotected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputCovariantVectorType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputCovariantVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputPointType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPoint ( const InputPointType point) const

Transform by an affine transformation

This method applies the affine transform given by self to a given point or vector, returning the transformed point or vector. The TransformPoint method transforms its argument as an affine point, whereas the TransformVector method transforms its argument as a vector.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformPoint ( const InputPointType input,
OutputPointType output 
) const
virtual

To transform a point, without creating an intermediate one.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVnlVectorType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVnlVectorType vector) const

Member Data Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
MatrixType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_Matrix
protected
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::SwitchableAffineTransform< TScalarType, NInputDimensions, NOutputDimensions >::m_Offset
protected

The documentation for this class was generated from the following file: