ERC CISST - cisst software

vctFrame4x4ConstBase< _containerType > Class Template Reference

#include <vctFrame4x4ConstBase.h>

Inheritance diagram for vctFrame4x4ConstBase< _containerType >:

Inheritance graph
[legend]
Collaboration diagram for vctFrame4x4ConstBase< _containerType >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class _containerType>
class vctFrame4x4ConstBase< _containerType >

Template base class for a 4x4 frame.

This class allows to use a 4 by 4 matrix as a frame in 3D. This is a limited case of the so called homegenous transformations as this class is intended to support only the translation and rotation parts of the transformation. It is not intended to support perspective or scaling operations. The different constructors and normalization methods provided will set the last row to [0 0 0 1].

Parameters:
_matrixType The type of matrix used to store the elements
See also:
vctDynamicMatrix, vctFixedSizeMatrix, vctFrameBase

Definition at line 51 of file vctFrame4x4ConstBase.h.

Public Types

Public Member Functions

Static Public Member Functions


Constructor & Destructor Documentation

template<class _containerType>
vctFrame4x4ConstBase< _containerType >::vctFrame4x4ConstBase ( void   )  [inline]

Default constructor. Updates internal references.

Definition at line 109 of file vctFrame4x4ConstBase.h.


Member Function Documentation

template<class _containerType>
static CISST_EXPORT const FrameValueType& vctFrame4x4ConstBase< _containerType >::Identity ( void   )  [static]

Const reference to the identity. In this case, the translation is set to (0, 0, 0) and the rotation is set to identity using its own method RotationType::Identity().

template<class _containerType>
bool vctFrame4x4ConstBase< _containerType >::IsNormalized ( value_type   CMN_UNUSED(tolerance) = TypeTraits::Tolerance()  )  const [inline]

Test if the rotation part is normalized. See vctMatrixRotation3ConstRef::IsNormalized.

Parameters:
tolerance Tolerance for the norm and scalar product tests.

Definition at line 140 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2>
void vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &  input,
vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &  output 
) const [inline]

Apply the transformation to a vector of fixed size DIMENSION. The result is stored into a vector of size DIMENSION provided by the caller and passed by reference.

Parameters:
input The input vector
output The output vector

Definition at line 154 of file vctFrame4x4ConstBase.h.

Referenced by vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::ApplyTo(), vctFrame4x4Base< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::InverseSelf(), and operator *().

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector<value_type, DIMENSION> vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &  input  )  const [inline]

Apply the transformation to a vector of fixed size DIMENSION. The result is returned by copy. This interface might be more convenient for some but one should note that it is less efficient since it requires a copy.

Parameters:
input The input vector
Returns:
The output vector

Definition at line 173 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<class __containerType1, class __containerType2>
void vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctFrame4x4ConstBase< __containerType1 > &  input,
vctFrame4x4Base< __containerType2 > &  output 
) const [inline]

Compose this transform over the input transform to obtain a new output transform passed by reference by the caller. The semantics of the operation are:

output = (*this) * input

if (*this) is [R1 | p1], input is [R2 | p2], then output will be [R1*R2 | R1*p2 + p1]

Definition at line 190 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<class __containerType>
FrameValueType vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctFrame4x4ConstBase< __containerType > &  input  )  const [inline]

Apply the transformation to another transformation. The result is returned by copy. This interface might be more convenient for some but one should note that it is less efficient since it requires a copy.

Parameters:
input The input transformation
Returns:
The output transformation

Definition at line 208 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<class __vectorOwnerType1, class __vectorOwnerType2>
void vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  input,
vctDynamicVectorBase< __vectorOwnerType2, value_type > &  output 
) const [inline]

Apply the transformation to a dynamic vector. The result is stored into another dynamic vector. It is assumed that both are of size DIMENSION.

Definition at line 221 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<size_type __cols, stride_type __rowStride1, stride_type __colStride1, class __dataPtrType1, stride_type __rowStride2, stride_type __colStride2, class __dataPtrType2>
void vctFrame4x4ConstBase< _containerType >::ApplyTo ( const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &  input,
vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &  output 
) const [inline]

Apply this transform to a matrix of three rows

Definition at line 235 of file vctFrame4x4ConstBase.h.

template<class _containerType>
void vctFrame4x4ConstBase< _containerType >::ApplyTo ( size_type  inputSize,
const vctFixedSizeVector< value_type, DIMENSION > *  input,
vctFixedSizeVector< value_type, DIMENSION > *  output 
) const [inline]

Apply this transform to an array of DIMENSION-vectors given as a pointer and a size. This method can be generalized to be templated with different vector types, defined by strides and dataPtrType. For simplicity, this version is writtend for a DIMENSION-vector object.

Definition at line 258 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<class __vectorOwnerType1, class __vectorOwnerType2>
void vctFrame4x4ConstBase< _containerType >::ApplyInverseTo ( const vctDynamicConstVectorBase< __vectorOwnerType1, value_type > &  input,
vctDynamicVectorBase< __vectorOwnerType2, value_type > &  output 
) const [inline]

Apply the inverse of the transformation to a vector of fixed size DIMENSION. The result is stored into a vector of size DIMENSION provided by the caller and passed by reference.

Parameters:
input The input vector
output The output vector

Definition at line 286 of file vctFrame4x4ConstBase.h.

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector<value_type, DIMENSION> vctFrame4x4ConstBase< _containerType >::ApplyInverseTo ( const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &  input  )  const [inline]

Apply the the inverse of the transformation to a vector of fixed size DIMENSION. The result is returned by copy. This interface might be more convenient for some but one should note that it is less efficient since it requires a copy.

Parameters:
input The input vector
Returns:
The output vector

Definition at line 309 of file vctFrame4x4ConstBase.h.

template<class _containerType>
bool vctFrame4x4ConstBase< _containerType >::Equal ( const ThisType other  )  const [inline]

Return true if this transformation is exactly equal to the other transformation. The result is based on the Equal() methods provided by the different rotation representations (vctQuaternionRotation3, vctMatrixRotation3, ...) and the translation.

See also:
AlmostEqual

Definition at line 340 of file vctFrame4x4ConstBase.h.

Referenced by vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::operator==().

template<class _containerType>
bool vctFrame4x4ConstBase< _containerType >::operator== ( const ThisType other  )  const [inline]

Return true if this transformation is exactly equal to the other transformation. The result is based on the Equal() methods provided by the different rotation representations (vctQuaternionRotation3, vctMatrixRotation3, ...) and the translation.

See also:
AlmostEqual

Definition at line 345 of file vctFrame4x4ConstBase.h.

template<class _containerType>
bool vctFrame4x4ConstBase< _containerType >::AlmostEqual ( const ThisType other,
value_type  tolerance = TypeTraits::Tolerance() 
) const [inline]

Return true if this transformation is equal to the other transformation, up to the given tolerance. The result is based on the AllowsEqual() methods provided by the different rotation representations (vctQuaternionRotation3, vctMatrixRotation3, ...) and the translation.

The tolerance factor is used to compare both the translations and rotations.

See also:
AlmostEquivalent

Definition at line 362 of file vctFrame4x4ConstBase.h.

Referenced by vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::AlmostEquivalent().

template<class _containerType>
bool vctFrame4x4ConstBase< _containerType >::AlmostEquivalent ( const ThisType other,
value_type  tolerance = TypeTraits::Tolerance() 
) const [inline]

Return true if this frame is effectively equivalent to the other frame, up to the given tolerance. For an homogeneous frame, this method uses AlmostEqual.

See also:
AlmostEqual

Definition at line 375 of file vctFrame4x4ConstBase.h.


The documentation for this class was generated from the following files:
erc-cisst-devel<at>lists.johnshopkins.edu