go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions > Class Template Reference

#include <itkAdvancedMatrixOffsetTransformBase.h>

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

Public Types

typedef InputPointType CenterType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
Superclass::InternalMatrixType 
InternalMatrixType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
InverseMatrixType
typedef
Superclass::JacobianOfSpatialHessianType 
JacobianOfSpatialHessianType
typedef
Superclass::JacobianOfSpatialJacobianType 
JacobianOfSpatialJacobianType
typedef Superclass::JacobianType JacobianType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef
Superclass::NonZeroJacobianIndicesType 
NonZeroJacobianIndicesType
typedef OutputVectorType OffsetType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef
AdvancedMatrixOffsetTransformBase 
Self
typedef
Superclass::SpatialHessianType 
SpatialHessianType
typedef
Superclass::SpatialJacobianType 
SpatialJacobianType
typedef AdvancedTransform
< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
typedef OutputVectorType TranslationType

Public Member Functions

void Compose (const Self *other, bool pre=0)
const InputPointTypeGetCenter (void) const
virtual const char * GetClassName () const
virtual const ParametersTypeGetFixedParameters (void) const
bool GetInverse (Self *inverse) const
const InverseMatrixTypeGetInverseMatrix (void) const
const JacobianTypeGetJacobian (const InputPointType &point) const
virtual void GetJacobian (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialHessian (const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
virtual void GetJacobianOfSpatialJacobian (const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const
const MatrixTypeGetMatrix (void) const
const OutputVectorTypeGetOffset (void) const
const ParametersTypeGetParameters (void) const
virtual void GetSpatialHessian (const InputPointType &, SpatialHessianType &) const
virtual void GetSpatialJacobian (const InputPointType &, SpatialJacobianType &) const
const OutputVectorTypeGetTranslation (void) const
virtual bool IsLinear (void) const
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 itkStaticConstMacro (ParametersDimension, unsigned int, NOutputDimensions *(NInputDimensions+1))
void SetCenter (const InputPointType &center)
virtual void SetFixedParameters (const ParametersType &)
virtual void SetIdentity (void)
virtual void SetMatrix (const MatrixType &matrix)
void SetOffset (const OutputVectorType &offset)
void SetParameters (const ParametersType &parameters)
void SetTranslation (const OutputVectorType &translation)
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const
OutputPointType TransformPoint (const InputPointType &point) const
OutputVectorType TransformVector (const InputVectorType &vector) const
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 AdvancedMatrixOffsetTransformBase (const MatrixType &matrix, const OutputVectorType &offset)
 AdvancedMatrixOffsetTransformBase (unsigned int outputDims, unsigned int paramDims)
 AdvancedMatrixOffsetTransformBase ()
virtual void ComputeMatrix (void)
virtual void ComputeMatrixParameters (void)
virtual void ComputeOffset (void)
virtual void ComputeTranslation (void)
const InverseMatrixTypeGetVarInverseMatrix (void) const
bool InverseMatrixIsOld (void) const
virtual void PrecomputeJacobians (unsigned int outputDims, unsigned int paramDims)
void PrintSelf (std::ostream &s, Indent indent) const
void SetVarCenter (const InputPointType &center)
void SetVarInverseMatrix (const InverseMatrixType &matrix) const
void SetVarMatrix (const MatrixType &matrix)
void SetVarOffset (const OutputVectorType &offset)
void SetVarTranslation (const OutputVectorType &translation)
virtual ~AdvancedMatrixOffsetTransformBase ()

Protected Attributes

JacobianOfSpatialHessianType m_JacobianOfSpatialHessian
JacobianOfSpatialJacobianType m_JacobianOfSpatialJacobian
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
SpatialHessianType m_SpatialHessian

Private Member Functions

 AdvancedMatrixOffsetTransformBase (const Self &other)
const Selfoperator= (const Self &)

Private Attributes

InputPointType m_Center
InverseMatrixType m_InverseMatrix
TimeStamp m_InverseMatrixMTime
MatrixType m_Matrix
TimeStamp m_MatrixMTime
NonZeroJacobianIndicesType m_NonZeroJacobianIndicesTemp
OutputVectorType m_Offset
bool m_Singular
OutputVectorType m_Translation

Detailed Description

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

Matrix and Offset transformation of a vector space (e.g. space coordinates)

This class serves as a base class for transforms that can be expressed as a linear transformation plus a constant offset (e.g., affine, similarity and rigid transforms). This base class also provides the concept of using a center of rotation and a translation instead of an offset.

As derived instances of this class are specializations of an affine transform, any two of these transformations may be composed and the result is an affine transformation. However, the order is important. Given two affine transformations T1 and T2, we will say that "precomposing T1 with T2" yields the transformation which applies T1 to the source, and then applies T2 to that result to obtain the target. Conversely, we will say that "postcomposing T1 with T2" yields the transformation which applies T2 to the source, and then applies T1 to that result to obtain the target. (Whether T1 or T2 comes first lexicographically depends on whether you choose to write mappings from right-to-left or vice versa; we avoid the whole problem by referring to the order of application rather than the textual order.)

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.

Definition at line 94 of file itkAdvancedMatrixOffsetTransformBase.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef InputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::CenterType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<const Self> itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::InputCovariantVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputCovariantVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputPointType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputVnlVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputVnlVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InternalMatrixType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InternalMatrixType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix< TScalarType, itkGetStaticConstMacro( InputSpaceDimension ), itkGetStaticConstMacro( OutputSpaceDimension )> itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::JacobianOfSpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialHessianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::JacobianOfSpatialJacobianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::JacobianOfSpatialJacobianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::JacobianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix< TScalarType, itkGetStaticConstMacro( OutputSpaceDimension ), itkGetStaticConstMacro( InputSpaceDimension )> itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::NonZeroJacobianIndicesType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::NonZeroJacobianIndicesType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OffsetType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass ::OutputCovariantVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVnlVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ParametersType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<Self> itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Pointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ScalarType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ScalarType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef AdvancedMatrixOffsetTransformBase itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Self
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::SpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SpatialHessianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::SpatialJacobianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SpatialJacobianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Superclass
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TranslationType

Constructor & Destructor Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( const MatrixType matrix,
const OutputVectorType offset 
) [protected]

Construct an AdvancedMatrixOffsetTransformBase object

This method constructs a new AdvancedMatrixOffsetTransformBase object and initializes the matrix and offset parts of the transformation to values specified by the caller. If the arguments are omitted, then the AdvancedMatrixOffsetTransformBase is initialized to an identity transformation in the appropriate number of dimensions.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( unsigned int  outputDims,
unsigned int  paramDims 
) [protected]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( ) [protected]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::~AdvancedMatrixOffsetTransformBase ( ) [inline, protected, virtual]

Destroy an AdvancedMatrixOffsetTransformBase object.

Definition at line 433 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::AdvancedMatrixOffsetTransformBase ( const Self other) [private]

Member Function Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Compose ( const Self other,
bool  pre = 0 
)

Compose with another AdvancedMatrixOffsetTransformBase

This method composes self with another AdvancedMatrixOffsetTransformBase of the same dimension, modifying self to be the composition of self and other. If the argument pre is true, then other is precomposed with self; that is, the resulting transformation consists of first applying other to the source, followed by self. If pre is false or omitted, then other is post-composed with self; that is the resulting transformation consists of first applying self to the source, followed by other. This updates the Translation based on current center.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeMatrix ( void  ) [protected, virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeMatrixParameters ( void  ) [protected, virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeOffset ( void  ) [protected, virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeTranslation ( void  ) [protected, virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InputPointType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetCenter ( void  ) const [inline]

Get center of rotation of the AdvancedMatrixOffsetTransformBase

This method returns the point used as the fixed center of rotation for the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 259 of file itkAdvancedMatrixOffsetTransformBase.h.

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

Get the Fixed Parameters.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedMatrixOffsetTransformBase< 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. If self is not invertible, an exception is thrown. Note that by default the inverese transform is centered at the origin. If you need to compute the inverse centered at a point, p,

 transform2->SetCenter( p );
 transform1->GetInverse( transform2 );

transform2 will now contain the inverse of transform1 and will with its center set to p. Flipping the two statements will produce an incorrect transform.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InverseMatrixType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetInverseMatrix ( void  ) const
Deprecated:
Use GetInverse instead.

Method will eventually be made a protected member function.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const JacobianType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType point) const [virtual]

Compute the Jacobian of the transformation

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobian ( const InputPointType ,
JacobianType ,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the transformation.

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

Reimplemented in itk::AffineDTI3DTransform< TScalarType >.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType ,
JacobianOfSpatialHessianType ,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the spatial Hessian of the transformation.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialHessian ( const InputPointType ipp,
SpatialHessianType sh,
JacobianOfSpatialHessianType jsh,
NonZeroJacobianIndicesType nonZeroJacobianIndices 
) const [virtual]

Compute both the spatial Hessian and the Jacobian of the spatial Hessian of the transformation.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType ,
JacobianOfSpatialJacobianType ,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the spatial Jacobian of the transformation.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetJacobianOfSpatialJacobian ( const InputPointType ,
SpatialJacobianType ,
JacobianOfSpatialJacobianType ,
NonZeroJacobianIndicesType  
) const [virtual]

Compute the Jacobian of the spatial Jacobian of the transformation.

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

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

Get matrix of an AdvancedMatrixOffsetTransformBase

This method returns the value of the matrix of the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 190 of file itkAdvancedMatrixOffsetTransformBase.h.

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

Get offset of an AdvancedMatrixOffsetTransformBase

This method returns the offset value of the AdvancedMatrixOffsetTransformBase. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 217 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const ParametersType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetParameters ( void  ) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialHessian ( const InputPointType ,
SpatialHessianType  
) const [virtual]

Compute the spatial Hessian of the transformation.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetSpatialJacobian ( const InputPointType ,
SpatialJacobianType  
) const [virtual]

Compute the spatial Jacobian of the transformation.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const OutputVectorType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetTranslation ( void  ) const [inline]

Get translation component of the AdvancedMatrixOffsetTransformBase

This method returns the translation used after rotation about the center point. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 285 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const InverseMatrixType& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetVarInverseMatrix ( void  ) const [inline, protected]

Definition at line 438 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixIsOld ( void  ) const [inline, protected]

Definition at line 449 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::IsLinear ( void  ) const [inline, virtual]

Indicates that this transform is linear. That is, given two points P and Q, and scalar coefficients a and b, then

T( a*P + b*Q ) = a * T(P) + b * T(Q)

Definition at line 363 of file itkAdvancedMatrixOffsetTransformBase.h.

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

Dimension of the domain space.

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

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( OutputSpaceDimension  ,
unsigned  int,
NOutputDimensions   
)
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::itkStaticConstMacro ( ParametersDimension  ,
unsigned  int,
NOutputDimensions *  NInputDimensions+1 
)
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
static Pointer itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::New ( ) [static]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const Self& itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::operator= ( const Self ) [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::PrecomputeJacobians ( unsigned int  outputDims,
unsigned int  paramDims 
) [protected, virtual]

Called by constructors:

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::PrintSelf ( std::ostream &  s,
Indent  indent 
) const [protected]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetCenter ( const InputPointType center) [inline]

Set center of rotation of an AdvancedMatrixOffsetTransformBase

This method sets the center of rotation of an AdvancedMatrixOffsetTransformBase to a fixed point - for most transforms derived from this class, this point is not a "parameter" of the transform - the exception is that "centered" transforms have center as a parameter during optimization.

This method updates offset wrt to current translation and matrix. That is, changing the center changes the transform!

WARNING: When using the Center, we strongly recommend only changing the matrix and translation to define a transform. Changing a transform's center, changes the mapping between spaces - specifically, translation is not changed with respect to that new center, and so the offset is updated to * maintain the consistency with translation. If a center is not used, or is set before the matrix and the offset, then it is safe to change the offset directly. As a rule of thumb, if you wish to set the center explicitly, set before Offset computations are done.

To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 245 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetFixedParameters ( const ParametersType ) [virtual]

Set the fixed parameters and update internal transformation.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetIdentity ( void  ) [virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetMatrix ( const MatrixType matrix) [inline, virtual]

Set matrix of an AdvancedMatrixOffsetTransformBase

This method sets the matrix of an AdvancedMatrixOffsetTransformBase to a value specified by the user.

This updates the Offset wrt to current translation and center. See the warning regarding offset-versus-translation in the documentation for SetCenter.

To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Reimplemented in itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedRigid3DTransform< TScalarType >, and itk::AdvancedSimilarity3DTransform< TScalarType >.

Definition at line 174 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetOffset ( const OutputVectorType offset) [inline]

Set offset (origin) of an MatrixOffset TransformBase.

This method sets the offset of an AdvancedMatrixOffsetTransformBase to a value specified by the user. This updates Translation wrt current center. See the warning regarding offset-versus-translation in the documentation for SetCenter. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 204 of file itkAdvancedMatrixOffsetTransformBase.h.

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

Set the transformation from a container of parameters. The first (NOutputDimension x NInputDimension) parameters define the matrix and the last NOutputDimension parameters the translation. Offset is updated based on current center.

Reimplemented in itk::AdvancedRigid2DTransform< TScalarType >, itk::AdvancedSimilarity2DTransform< TScalarType >, itk::AffineDTI3DTransform< TScalarType >, itk::AdvancedVersorTransform< TScalarType >, itk::AdvancedSimilarity3DTransform< TScalarType >, itk::AdvancedRigid3DTransform< TScalarType >, itk::AdvancedVersorRigid3DTransform< TScalarType >, and itk::AdvancedEuler3DTransform< TScalarType >.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetTranslation ( const OutputVectorType translation) [inline]

Set translation of an AdvancedMatrixOffsetTransformBase

This method sets the translation of an AdvancedMatrixOffsetTransformBase. This updates Offset to reflect current translation. To define an affine transform, you must set the matrix, center, and translation OR the matrix and offset.

Definition at line 271 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarCenter ( const InputPointType center) [inline, protected]

Definition at line 485 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarInverseMatrix ( const InverseMatrixType matrix) const [inline, protected]

Definition at line 443 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarMatrix ( const MatrixType matrix) [inline, protected]

Definition at line 465 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarOffset ( const OutputVectorType offset) [inline, protected]

Definition at line 480 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetVarTranslation ( const OutputVectorType translation) [inline, protected]

Definition at line 473 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputCovariantVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputCovariantVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputPointType itk::AdvancedMatrixOffsetTransformBase< 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>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVnlVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVnlVectorType vector) const

Field Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InputPointType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Center [private]

Definition at line 509 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InverseMatrixType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrix [mutable, private]

Definition at line 506 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrixMTime [mutable, private]

Definition at line 514 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
JacobianOfSpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_JacobianOfSpatialHessian [protected]

Definition at line 496 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
JacobianOfSpatialJacobianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_JacobianOfSpatialJacobian [protected]

Definition at line 495 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
MatrixType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Matrix [private]

Member variables.

Definition at line 504 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_MatrixMTime [private]

To avoid recomputation of the inverse if not needed.

Definition at line 513 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
NonZeroJacobianIndicesType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_NonZeroJacobianIndices [protected]

(spatial) Jacobians and Hessians can mostly be precomputed by this transform. Store them in these member variables. SpatialJacobian is simply m_Matrix

Definition at line 488 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
NonZeroJacobianIndicesType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_NonZeroJacobianIndicesTemp [mutable, private]

Used by the GetJacobian() function which returns the jacobian as an output variable.

Definition at line 518 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Offset [private]

Definition at line 505 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Singular [mutable, private]

Definition at line 507 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
SpatialHessianType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_SpatialHessian [protected]

Definition at line 494 of file itkAdvancedMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::AdvancedMatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Translation [private]

Definition at line 510 of file itkAdvancedMatrixOffsetTransformBase.h.



Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo