#include <vctFrame4x4ConstBase.h>
Inheritance diagram for vctFrame4x4ConstBase< _containerType >:


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].
| _matrixType | The type of matrix used to store the elements |
Definition at line 51 of file vctFrame4x4ConstBase.h.
| vctFrame4x4ConstBase< _containerType >::vctFrame4x4ConstBase | ( | void | ) | [inline] |
Default constructor. Updates internal references.
Definition at line 109 of file vctFrame4x4ConstBase.h.
| 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().
| bool vctFrame4x4ConstBase< _containerType >::IsNormalized | ( | value_type | CMN_UNUSED(tolerance) = TypeTraits::Tolerance() |
) | const [inline] |
Test if the rotation part is normalized. See vctMatrixRotation3ConstRef::IsNormalized.
| tolerance | Tolerance for the norm and scalar product tests. |
Definition at line 140 of file vctFrame4x4ConstBase.h.
| 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.
| 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 *().
| 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.
| input | The input vector |
Definition at line 173 of file vctFrame4x4ConstBase.h.
| 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.
| 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.
| input | The input transformation |
Definition at line 208 of file vctFrame4x4ConstBase.h.
| 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.
| 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.
| 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.
| 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.
| input | The input vector | |
| output | The output vector |
Definition at line 286 of file vctFrame4x4ConstBase.h.
| 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.
| input | The input vector |
Definition at line 309 of file vctFrame4x4ConstBase.h.
| 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.
Definition at line 340 of file vctFrame4x4ConstBase.h.
Referenced by vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::operator==().
| 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.
Definition at line 345 of file vctFrame4x4ConstBase.h.
| 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.
Definition at line 362 of file vctFrame4x4ConstBase.h.
Referenced by vctFrame4x4ConstBase< vctFixedSizeMatrix< _elementType, 4, 4, _rowMajor > >::AlmostEquivalent().
| 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.
Definition at line 375 of file vctFrame4x4ConstBase.h.