ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions > Class Template Reference

#include <itkMatrixOffsetTransformBase.h>

+ Inheritance diagram for itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >:
+ Collaboration diagram for itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >:

List of all members.

Public Types

typedef InputPointType CenterType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputDiffusionTensor3DType 
InputDiffusionTensor3DType
typedef
Superclass::InputSymmetricSecondRankTensorType 
InputSymmetricSecondRankTensorType
typedef CovariantVector
< TScalarType,
InputDiffusionTensor3DType::Dimension > 
InputTensorEigenVectorType
typedef
Superclass::InputVectorPixelType 
InputVectorPixelType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension),
itkGetStaticConstMacro(OutputSpaceDimension)> 
InverseMatrixType
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
typedef
Superclass::InverseTransformBaseType 
InverseTransformBaseType
typedef Superclass::JacobianType JacobianType
typedef OutputVectorType OffsetType
typedef OffsetType::ValueType OffsetValueType
typedef
Superclass::OutputDiffusionTensor3DType 
OutputDiffusionTensor3DType
typedef
Superclass::OutputSymmetricSecondRankTensorType 
OutputSymmetricSecondRankTensorType
typedef
Superclass::OutputVectorPixelType 
OutputVectorPixelType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef MatrixOffsetTransformBase Self
typedef Transform< TScalarType,
NInputDimensions,
NOutputDimensions > 
Superclass
typedef OutputVectorType TranslationType
typedef TranslationType::ValueType TranslationValueType
typedef Vector< TScalarType,
itkGetStaticConstMacro(InputSpaceDimension)> 
InputVectorType
typedef Vector< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputVectorType
typedef OutputVectorType::ValueType OutputVectorValueType
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 InputPointType::ValueType InputPointValueType
typedef Point< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension)> 
OutputPointType
typedef OutputPointType::ValueType OutputPointValueType
typedef Matrix< TScalarType,
itkGetStaticConstMacro(OutputSpaceDimension),
itkGetStaticConstMacro(InputSpaceDimension)> 
MatrixType
typedef MatrixType::ValueType MatrixValueType

Public Member Functions

void Compose (const Self *other, bool pre=0)
virtual void ComputeInverseJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jac) const
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &x, JacobianType &j) const
virtual void ComputeJacobianWithRespectToPosition (const InputPointType &x, JacobianType &jac) const
virtual ::itk::LightObject::Pointer CreateAnother (void) const
const InputPointTypeGetCenter () const
virtual const ParametersTypeGetFixedParameters (void) const
const InverseMatrixTypeGetInverseMatrix (void) const
virtual InverseTransformBasePointer GetInverseTransform () const
virtual const MatrixTypeGetMatrix () const
virtual const char * GetNameOfClass () const
const OutputVectorTypeGetOffset (void) const
const ParametersTypeGetParameters (void) const
const OutputVectorTypeGetTranslation (void) const
virtual bool IsLinear () const
virtual void SetFixedParameters (const ParametersType &)
virtual void SetIdentity (void)
void SetParameters (const ParametersType &parameters)
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &vector) const
OutputVectorPixelType TransformCovariantVector (const InputVectorPixelType &vector) const
OutputDiffusionTensor3DType TransformDiffusionTensor3D (const InputDiffusionTensor3DType &tensor) const
OutputVectorPixelType TransformDiffusionTensor3D (const InputVectorPixelType &tensor) const
OutputPointType TransformPoint (const InputPointType &point) const
OutputSymmetricSecondRankTensorType TransformSymmetricSecondRankTensor (const InputSymmetricSecondRankTensorType &tensor) const
OutputVectorPixelType TransformSymmetricSecondRankTensor (const InputVectorPixelType &tensor) const
OutputVectorType TransformVector (const InputVectorType &vector) const
OutputVnlVectorType TransformVector (const InputVnlVectorType &vector) const
OutputVectorPixelType TransformVector (const InputVectorPixelType &vector) const
virtual void SetMatrix (const MatrixType &matrix)
void SetOffset (const OutputVectorType &offset)
void SetCenter (const InputPointType &center)
void SetTranslation (const OutputVectorType &translation)
bool GetInverse (Self *inverse) const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int InputSpaceDimension = NInputDimensions
static const unsigned int OutputSpaceDimension = NOutputDimensions
static const unsigned int ParametersDimension = NOutputDimensions * ( NInputDimensions + 1 )

Protected Member Functions

virtual void ComputeMatrix (void)
virtual void ComputeMatrixParameters (void)
virtual void ComputeOffset (void)
virtual void ComputeTranslation (void)
const InverseMatrixTypeGetVarInverseMatrix (void) const
bool InverseMatrixIsOld (void) const
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 ~MatrixOffsetTransformBase ()
 MatrixOffsetTransformBase (const MatrixType &matrix, const OutputVectorType &offset)
 MatrixOffsetTransformBase (unsigned int paramDims)
 MatrixOffsetTransformBase ()

Private Member Functions

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

Private Attributes

InputPointType m_Center
InverseMatrixType m_InverseMatrix
TimeStamp m_InverseMatrixMTime
MatrixType m_Matrix
TimeStamp m_MatrixMTime
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::MatrixOffsetTransformBase< 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.)

Template Parameters:
ScalarTThe type to be used for scalar numeric values. Either float or double.
NInputDimensionsThe number of dimensions of the input vector space.
NOutputDimensionsThe 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 75 of file itkMatrixOffsetTransformBase.h.


Member Typedef Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef InputPointType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::CenterType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<const Self> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ConstPointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputCovariantVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputDiffusionTensor3DType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputDiffusionTensor3DType

Standard diffusion tensor type for this class

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

Definition at line 133 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputPointType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef InputPointType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputPointValueType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InputSymmetricSecondRankTensorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputSymmetricSecondRankTensorType

Standard tensor type for this class

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

Definition at line 139 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef CovariantVector<TScalarType, InputDiffusionTensor3DType::Dimension> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputTensorEigenVectorType

Definition at line 144 of file itkMatrixOffsetTransformBase.h.

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

Standard variable length vector type for this class this provides an interface for the VectorImage class

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

Definition at line 128 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(InputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputVnlVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix<TScalarType, itkGetStaticConstMacro(InputSpaceDimension), itkGetStaticConstMacro(OutputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseMatrixType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef InverseTransformBaseType::Pointer itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseTransformBasePointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::InverseTransformBaseType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InverseTransformBaseType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::JacobianType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::JacobianType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Matrix<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef MatrixType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixValueType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OffsetType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OffsetType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OffsetValueType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef CovariantVector<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputCovariantVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputDiffusionTensor3DType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputDiffusionTensor3DType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Point<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputPointType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputPointValueType

Standard coordinate point type for this class

Definition at line 163 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputSymmetricSecondRankTensorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputSymmetricSecondRankTensorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::OutputVectorPixelType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorPixelType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Vector<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputVectorType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVectorValueType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef vnl_vector_fixed<TScalarType, itkGetStaticConstMacro(OutputSpaceDimension)> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputVnlVectorType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ParametersType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ParametersValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ParametersValueType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef SmartPointer<Self> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Pointer
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Superclass::ScalarType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ScalarType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef MatrixOffsetTransformBase itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Self
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef Transform<TScalarType, NInputDimensions, NOutputDimensions> itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::Superclass
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef OutputVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TranslationType
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
typedef TranslationType::ValueType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TranslationValueType

Constructor & Destructor Documentation

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

Construct an MatrixOffsetTransformBase object

This method constructs a new MatrixOffsetTransformBase object and initializes the matrix and offset parts of the transformation to values specified by the caller. If the arguments are omitted, then the MatrixOffsetTransformBase 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::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixOffsetTransformBase ( unsigned int  paramDims) [protected]

Construct an MatrixOffsetTransformBase object

This method constructs a new MatrixOffsetTransformBase object and initializes the matrix and offset parts of the transformation to values specified by the caller. If the arguments are omitted, then the MatrixOffsetTransformBase 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::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::MatrixOffsetTransformBase ( ) [protected]

Construct an MatrixOffsetTransformBase object

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

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

Destroy an MatrixOffsetTransformBase object

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

Member Function Documentation

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

Compose with another MatrixOffsetTransformBase

This method composes self with another MatrixOffsetTransformBase 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.

Reimplemented in itk::ScaleTransform< TScalarType, NDimensions >.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeInverseJacobianWithRespectToPosition ( const InputPointType x,
JacobianType jac 
) const [virtual]

Get the jacobian with respect to position. This simply returns the inverse of the current Matrix. jac will be resized as needed, but it's more efficient if it's already properly sized.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeJacobianWithRespectToParameters ( const InputPointType x,
JacobianType j 
) const [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. Get local Jacobian for the given point j will sized properly as needed.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual void itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ComputeJacobianWithRespectToPosition ( const InputPointType x,
JacobianType jac 
) const [virtual]

Get the jacobian with respect to position. This simply returns the current Matrix. jac will be resized as needed, but it's more efficient if it's already properly sized.

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

Get center of rotation of the MatrixOffsetTransformBase

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

Definition at line 288 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual const ParametersType& itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::GetFixedParameters ( void  ) const [virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::MatrixOffsetTransformBase< 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.

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

Reimplemented in itk::AffineTransform< TScalarType, NDimensions >, itk::Rigid2DTransform< TScalarType >, itk::ScaleTransform< TScalarType, NDimensions >, itk::Similarity2DTransform< TScalarType >, itk::CenteredSimilarity2DTransform< TScalarType >, itk::CenteredRigid2DTransform< TScalarType >, itk::ScalableAffineTransform< TScalarType, NDimensions >, itkv3::Rigid3DTransform< TScalarType >, itk::CenteredEuler3DTransform< TScalarType >, itk::CenteredAffineTransform< TScalarType, NDimensions >, and itk::Euler2DTransform< TScalarType >.

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

Method will eventually be made a protected member function

Reimplemented in itk::QuaternionRigidTransform< TScalarType >.

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

Get matrix of an MatrixOffsetTransformBase

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

Definition at line 223 of file itkMatrixOffsetTransformBase.h.

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

Get offset of an MatrixOffsetTransformBase

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

Definition at line 248 of file itkMatrixOffsetTransformBase.h.

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

Get translation component of the MatrixOffsetTransformBase

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 312 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 459 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 467 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
virtual bool itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::IsLinear ( ) 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)

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

Reimplemented in itk::ScaleTransform< TScalarType, NDimensions >.

Definition at line 435 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
static Pointer itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::New ( ) [static]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const Self& itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::operator= ( const Self ) [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::PrintSelf ( std::ostream &  s,
Indent  indent 
) const [protected, virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
void itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::SetCenter ( const InputPointType center) [inline]

Set center of rotation of an MatrixOffsetTransformBase

This method sets the center of rotation of an MatrixOffsetTransformBase 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 275 of file itkMatrixOffsetTransformBase.h.

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

Set matrix of an MatrixOffsetTransformBase

This method sets the matrix of an MatrixOffsetTransformBase 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

Definition at line 208 of file itkMatrixOffsetTransformBase.h.

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

Set offset (origin) of an MatrixOffset TransformBase.

This method sets the offset of an MatrixOffsetTransformBase 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 236 of file itkMatrixOffsetTransformBase.h.

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

Set translation of an MatrixOffsetTransformBase

This method sets the translation of an MatrixOffsetTransformBase. 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 299 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 502 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 463 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 483 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 497 of file itkMatrixOffsetTransformBase.h.

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

Definition at line 490 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputCovariantVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputCovariantVectorType ) const [virtual]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorPixelType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformCovariantVector ( const InputVectorPixelType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputDiffusionTensor3DType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformDiffusionTensor3D ( const InputDiffusionTensor3DType tensor) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorPixelType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformDiffusionTensor3D ( const InputVectorPixelType tensor) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputPointType itk::MatrixOffsetTransformBase< 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>
OutputSymmetricSecondRankTensorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformSymmetricSecondRankTensor ( const InputSymmetricSecondRankTensorType tensor) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorPixelType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformSymmetricSecondRankTensor ( const InputVectorPixelType tensor) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVnlVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVnlVectorType vector) const
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorPixelType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::TransformVector ( const InputVectorPixelType vector) const

Member Data Documentation

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const unsigned int itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::InputSpaceDimension = NInputDimensions [static]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InputPointType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Center [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
InverseMatrixType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrix [mutable, private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_InverseMatrixMTime [mutable, private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
MatrixType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Matrix [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
TimeStamp itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_MatrixMTime [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Offset [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
bool itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Singular [mutable, private]

Definition at line 514 of file itkMatrixOffsetTransformBase.h.

template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
OutputVectorType itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::m_Translation [private]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const unsigned int itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::OutputSpaceDimension = NOutputDimensions [static]
template<class TScalarType = double, unsigned int NInputDimensions = 3, unsigned int NOutputDimensions = 3>
const unsigned int itk::MatrixOffsetTransformBase< TScalarType, NInputDimensions, NOutputDimensions >::ParametersDimension = NOutputDimensions * ( NInputDimensions + 1 ) [static]

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