ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions
itk::Rigid3DTransform< TScalarType > Class Template Reference

Rigid3DTransform of a vector space (e.g. space coordinates) More...

#include <itkRigid3DTransform.h>

Inheritance diagram for itk::Rigid3DTransform< TScalarType >:
Collaboration diagram for itk::Rigid3DTransform< TScalarType >:

List of all members.

Public Types

typedef Superclass::CenterType CenterType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::InputCovariantVectorType 
InputCovariantVectorType
typedef Superclass::InputPointType InputPointType
typedef Superclass::InputVectorType InputVectorType
typedef
Superclass::InputVnlVectorType 
InputVnlVectorType
typedef
Superclass::InverseMatrixType 
InverseMatrixType
typedef
InverseTransformBaseType::Pointer 
InverseTransformBasePointer
typedef
Superclass::InverseTransformBaseType 
InverseTransformBaseType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MatrixType MatrixType
typedef Superclass::MatrixValueType MatrixValueType
typedef Superclass::OffsetType OffsetType
typedef
Superclass::OutputCovariantVectorType 
OutputCovariantVectorType
typedef Superclass::OutputPointType OutputPointType
typedef
Superclass::OutputVectorType 
OutputVectorType
typedef
Superclass::OutputVectorValueType 
OutputVectorValueType
typedef
Superclass::OutputVnlVectorType 
OutputVnlVectorType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef SmartPointer< SelfPointer
typedef Superclass::ScalarType ScalarType
typedef Rigid3DTransform Self
typedef
MatrixOffsetTransformBase
< TScalarType, 3, 3 > 
Superclass
typedef Superclass::TranslationType TranslationType

Public Member Functions

InputPointType BackTransform (const OutputPointType &point) const
InputVectorType BackTransform (const OutputVectorType &vector) const
InputVnlVectorType BackTransform (const OutputVnlVectorType &vector) const
InputCovariantVectorType BackTransform (const OutputCovariantVectorType &vector) const
virtual const char * GetNameOfClass () const
const MatrixTypeGetRotationMatrix () const
bool MatrixIsOrthogonal (const MatrixType &matrix, double tol=1e-10)
virtual void SetMatrix (const MatrixType &matrix)
virtual void SetParameters (const ParametersType &parameters)
virtual void SetRotationMatrix (const MatrixType &matrix)
void Translate (const OffsetType &offset, bool pre=false)

Static Public Attributes

static const unsigned int SpaceDimension = 3
static const unsigned int InputSpaceDimension = 3
static const unsigned int OutputSpaceDimension = 3
static const unsigned int ParametersDimension = 12

Protected Member Functions

void PrintSelf (std::ostream &os, Indent indent) const
 Rigid3DTransform (unsigned int paramDim)
 Rigid3DTransform (const MatrixType &matrix, const OutputVectorType &offset)
 Rigid3DTransform ()
 ~Rigid3DTransform ()

Private Member Functions

void operator= (const Self &)
 Rigid3DTransform (const Self &)

Detailed Description

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

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

This transform applies a rotation and translation in 3D space. The transform is specified as a rotation matrix around a arbitrary center and is followed by a translation.

The parameters for this transform can be set either using individual Set methods or in serialized form using SetParameters() and SetFixedParameters().

The serialization of the optimizable parameters is an array of 12 elements. The first 9 parameters represents the rotation matrix in row-major order (where the column index varies the fastest). The last 3 parameters defines the translation in each dimension.

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

Definition at line 49 of file itkRigid3DTransform.h.


Member Typedef Documentation

template<class TScalarType = double>
typedef Superclass::CenterType itk::Rigid3DTransform< TScalarType >::CenterType
template<class TScalarType = double>
typedef SmartPointer< const Self > itk::Rigid3DTransform< TScalarType >::ConstPointer
template<class TScalarType = double>
typedef Superclass::InputCovariantVectorType itk::Rigid3DTransform< TScalarType >::InputCovariantVectorType
template<class TScalarType = double>
typedef Superclass::InputPointType itk::Rigid3DTransform< TScalarType >::InputPointType
template<class TScalarType = double>
typedef Superclass::InputVectorType itk::Rigid3DTransform< TScalarType >::InputVectorType
template<class TScalarType = double>
typedef Superclass::InputVnlVectorType itk::Rigid3DTransform< TScalarType >::InputVnlVectorType
template<class TScalarType = double>
typedef Superclass::InverseMatrixType itk::Rigid3DTransform< TScalarType >::InverseMatrixType
template<class TScalarType = double>
typedef InverseTransformBaseType::Pointer itk::Rigid3DTransform< TScalarType >::InverseTransformBasePointer
template<class TScalarType = double>
typedef Superclass::InverseTransformBaseType itk::Rigid3DTransform< TScalarType >::InverseTransformBaseType

Base inverse transform type. This type should not be changed to the concrete inverse transform type or inheritance would be lost.

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >.

Reimplemented in itk::CenteredEuler3DTransform< TScalarType >, and itkv3::Rigid3DTransform< TScalarType >.

Definition at line 96 of file itkRigid3DTransform.h.

template<class TScalarType = double>
typedef Superclass::JacobianType itk::Rigid3DTransform< TScalarType >::JacobianType
template<class TScalarType = double>
typedef Superclass::MatrixType itk::Rigid3DTransform< TScalarType >::MatrixType
template<class TScalarType = double>
typedef Superclass::MatrixValueType itk::Rigid3DTransform< TScalarType >::MatrixValueType

Standard matrix type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >.

Reimplemented in itkv3::Rigid3DTransform< TScalarType >.

Definition at line 89 of file itkRigid3DTransform.h.

template<class TScalarType = double>
typedef Superclass::OffsetType itk::Rigid3DTransform< TScalarType >::OffsetType
template<class TScalarType = double>
typedef Superclass::OutputCovariantVectorType itk::Rigid3DTransform< TScalarType >::OutputCovariantVectorType
template<class TScalarType = double>
typedef Superclass::OutputPointType itk::Rigid3DTransform< TScalarType >::OutputPointType
template<class TScalarType = double>
typedef Superclass::OutputVectorType itk::Rigid3DTransform< TScalarType >::OutputVectorType
template<class TScalarType = double>
typedef Superclass::OutputVectorValueType itk::Rigid3DTransform< TScalarType >::OutputVectorValueType

Standard vector type for this class

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >.

Reimplemented in itk::QuaternionRigidTransform< TScalarType >, and itkv3::Rigid3DTransform< TScalarType >.

Definition at line 80 of file itkRigid3DTransform.h.

template<class TScalarType = double>
typedef Superclass::OutputVnlVectorType itk::Rigid3DTransform< TScalarType >::OutputVnlVectorType
template<class TScalarType = double>
typedef Superclass::ParametersType itk::Rigid3DTransform< TScalarType >::ParametersType
template<class TScalarType = double>
typedef Superclass::ParametersValueType itk::Rigid3DTransform< TScalarType >::ParametersValueType
template<class TScalarType = double>
typedef SmartPointer< Self > itk::Rigid3DTransform< TScalarType >::Pointer
template<class TScalarType = double>
typedef Superclass::ScalarType itk::Rigid3DTransform< TScalarType >::ScalarType
template<class TScalarType = double>
typedef Rigid3DTransform itk::Rigid3DTransform< TScalarType >::Self
template<class TScalarType = double>
typedef MatrixOffsetTransformBase< TScalarType, 3, 3 > itk::Rigid3DTransform< TScalarType >::Superclass
template<class TScalarType = double>
typedef Superclass::TranslationType itk::Rigid3DTransform< TScalarType >::TranslationType

Constructor & Destructor Documentation

template<class TScalarType = double>
itk::Rigid3DTransform< TScalarType >::Rigid3DTransform ( const MatrixType matrix,
const OutputVectorType offset 
) [protected]
template<class TScalarType = double>
itk::Rigid3DTransform< TScalarType >::Rigid3DTransform ( unsigned int  paramDim) [protected]
template<class TScalarType = double>
itk::Rigid3DTransform< TScalarType >::Rigid3DTransform ( ) [protected]
template<class TScalarType = double>
itk::Rigid3DTransform< TScalarType >::~Rigid3DTransform ( ) [protected]
template<class TScalarType = double>
itk::Rigid3DTransform< TScalarType >::Rigid3DTransform ( const Self ) [private]

Member Function Documentation

template<class TScalarType = double>
InputPointType itk::Rigid3DTransform< TScalarType >::BackTransform ( const OutputPointType point) const

Back transform by an affine transformation

This method finds the point or vector that maps to a given point or vector under the affine transformation defined by self. If no such point exists, an exception is thrown.

Deprecated:
Please use GetInverseTransform and then call the forward transform using the result.
template<class TScalarType = double>
InputVectorType itk::Rigid3DTransform< TScalarType >::BackTransform ( const OutputVectorType vector) const
template<class TScalarType = double>
InputVnlVectorType itk::Rigid3DTransform< TScalarType >::BackTransform ( const OutputVnlVectorType vector) const
template<class TScalarType = double>
InputCovariantVectorType itk::Rigid3DTransform< TScalarType >::BackTransform ( const OutputCovariantVectorType vector) const
template<class TScalarType = double>
virtual const char* itk::Rigid3DTransform< TScalarType >::GetNameOfClass ( ) const [virtual]
template<class TScalarType = double>
const MatrixType& itk::Rigid3DTransform< TScalarType >::GetRotationMatrix ( ) const [inline]

Get rotation Matrix from an Rigid3DTransform

This method returns the value of the rotation of the Rigid3DTransform.

Deprecated:
Use GetMatrix instead

Definition at line 126 of file itkRigid3DTransform.h.

template<class TScalarType = double>
bool itk::Rigid3DTransform< TScalarType >::MatrixIsOrthogonal ( const MatrixType matrix,
double  tol = 1e-10 
)

Utility function to test if a matrix is orthogonal within a specified tolerance

template<class TScalarType = double>
void itk::Rigid3DTransform< TScalarType >::operator= ( const Self ) [private]
template<class TScalarType = double>
void itk::Rigid3DTransform< TScalarType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]
template<class TScalarType = double>
virtual void itk::Rigid3DTransform< TScalarType >::SetMatrix ( const MatrixType matrix) [virtual]

Directly set the rotation matrix of the transform.

Warning:
The input matrix must be orthogonal to within a specified tolerance, else an exception is thrown.
See also:
MatrixOffsetTransformBase::SetMatrix()

Reimplemented in itk::ScaleSkewVersor3DTransform< TScalarType >, itk::ScaleVersor3DTransform< TScalarType >, and itk::Similarity3DTransform< TScalarType >.

template<class TScalarType = double>
virtual void itk::Rigid3DTransform< TScalarType >::SetParameters ( const ParametersType parameters) [virtual]

Set the transformation from a container of parameters This is typically used by optimizers. There are 12 parameters. The first 9 represents the rotation matrix is row-major order and the last 3 represents the translation.

Warning:
The rotation matrix must be orthogonal to within a specified tolerance, else an exception is thrown.
See also:
Transform::SetParameters()
Transform::SetFixedParameters()

Reimplemented from itk::MatrixOffsetTransformBase< TScalarType, 3, 3 >.

Reimplemented in itk::CenteredEuler3DTransform< TScalarType >, itk::Euler3DTransform< TScalarType >, itk::QuaternionRigidTransform< TScalarType >, itk::ScaleSkewVersor3DTransform< TScalarType >, itk::ScaleVersor3DTransform< TScalarType >, itk::Similarity3DTransform< TScalarType >, itk::VersorRigid3DTransform< TScalarType >, and itk::VersorTransform< TScalarType >.

template<class TScalarType = double>
virtual void itk::Rigid3DTransform< TScalarType >::SetRotationMatrix ( const MatrixType matrix) [inline, virtual]

Set the rotation Matrix of a Rigid3D Transform

This method sets the 3x3 matrix representing a rotation in the transform. The Matrix is expected to be orthogonal with a certain tolerance.

Deprecated:
Use SetMatrix instead

Reimplemented in itk::VersorTransform< TScalarType >.

Definition at line 139 of file itkRigid3DTransform.h.

template<class TScalarType = double>
void itk::Rigid3DTransform< TScalarType >::Translate ( const OffsetType offset,
bool  pre = false 
)

Compose the transformation with a translation

This method modifies self to include a translation of the origin. The translation is precomposed with self if pre is true, and postcomposed otherwise.


Member Data Documentation

template<class TScalarType = double>
const unsigned int itk::Rigid3DTransform< TScalarType >::InputSpaceDimension = 3 [static]
template<class TScalarType = double>
const unsigned int itk::Rigid3DTransform< TScalarType >::OutputSpaceDimension = 3 [static]
template<class TScalarType = double>
const unsigned int itk::Rigid3DTransform< TScalarType >::ParametersDimension = 12 [static]
template<class TScalarType = double>
const unsigned int itk::Rigid3DTransform< TScalarType >::SpaceDimension = 3 [static]

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