cisst-saw
Loading...
Searching...
No Matches
vctFrameBase< _rotationType > Class Template Reference

Template base class for a frame. More...

#include <vctFrameBase.h>

Public Types

enum  { DIMENSION = _rotationType::DIMENSION }
typedef vctFrameBase< _rotationType > ThisType
typedef _rotationType RotationType
typedef vctFixedSizeVector< value_type, DIMENSIONTranslationType
typedef cmnTypeTraits< value_typeTypeTraits

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (typename _rotationType::value_type)
 vctFrameBase (void)
template<stride_type __stride, class __dataPtrType>
 vctFrameBase (const RotationType &rotation, const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &translation)
template<class __containerType>
 vctFrameBase (const vctFrame4x4ConstBase< __containerType > &other)
template<class __containerType>
 vctFrameBase (const vctFrame4x4ConstBase< __containerType > &other, bool normalizeInput)
ThisTypeAssign (const ThisType &otherFrame)
template<stride_type __stride, class __dataPtrType>
ThisTypeAssign (const RotationType &rotation, const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &translation)
template<class __rotationType>
ThisTypeFrom (const vctFrameBase< __rotationType > &other) CISST_THROW(std
template<class __rotationType>
ThisTypeFromNormalized (const vctFrameBase< __rotationType > &other)
template<class __rotationType>
ThisTypeFromRaw (const vctFrameBase< __rotationType > &other)
template<class __containerType>
ThisTypeFrom (const vctFrame4x4ConstBase< __containerType > &other) CISST_THROW(std
template<class __containerType>
ThisTypeFromNormalized (const vctFrame4x4ConstBase< __containerType > &other)
template<class __containerType>
ThisTypeFromRaw (const vctFrame4x4ConstBase< __containerType > &other)
const TranslationTypeTranslation (void) const
TranslationTypeTranslation (void)
TranslationType GetTranslation (void) const
void SetTranslation (const TranslationType &trans)
const RotationTypeRotation (void) const
RotationTypeRotation (void)
RotationType GetRotation (void) const
void SetRotation (const RotationType &rot)
bool IsNormalized (value_type tolerance=TypeTraits::Tolerance()) const
ThisTypeNormalizedSelf (void)
ThisTypeInverseSelf (void)
ThisTypeInverseOf (const ThisType &otherFrame)
ThisType Inverse (void) const
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2>
void ApplyTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector< value_type, DIMENSIONApplyTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSIONApplyTo (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &input) const
void ApplyTo (const ThisType &input, ThisType &output) const
void ProductOf (const ThisType &left, ThisType &right)
ThisType ApplyTo (const ThisType &input) const
template<class _vectorOwnerType1, class _vectorOwnerType2>
void ApplyTo (const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &input, vctDynamicVectorBase< _vectorOwnerType2, value_type > &output) const
template<class _vectorOwnerType1, stride_type __stride2, class __dataPtrType2>
void ApplyTo (const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
template<size_type __cols, stride_type __rowStride1, stride_type __colStride1, class __dataPtrType1, stride_type __rowStride2, stride_type __colStride2, class __dataPtrType2>
void ApplyTo (const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
void ApplyTo (size_type inputSize, const vctFixedSizeVector< value_type, DIMENSION > *input, vctFixedSizeVector< value_type, DIMENSION > *output) const
template<class __matrixOwnerType1, class __matrixOwnerType2>
void ApplyTo (const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2>
void ApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
template<class _vectorOwnerType1, class _vectorOwnerType2>
void ApplyInverseTo (const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &input, vctDynamicVectorBase< _vectorOwnerType2, value_type > &output) const
template<class _vectorOwnerType1, stride_type __stride2, class __dataPtrType2>
void ApplyInverseTo (const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &input, vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > &output) const
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector< value_type, DIMENSIONApplyInverseTo (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &input) const
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSIONApplyInverseTo (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &input) const
void ApplyInverseTo (const ThisType &input, ThisType &output) const
ThisType ApplyInverseTo (const ThisType &input) const
template<size_type __cols, stride_type __rowStride1, stride_type __colStride1, class __dataPtrType1, stride_type __rowStride2, stride_type __colStride2, class __dataPtrType2>
void ApplyInverseTo (const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &input, vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &output) const
template<class __matrixOwnerType1, class __matrixOwnerType2>
void ApplyInverseTo (const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &input, vctDynamicMatrixBase< __matrixOwnerType2, value_type > &output) const
template<stride_type _stride, class _dataPtrType>
vctFixedSizeVector< value_type, DIMENSIONoperator* (const vctFixedSizeConstVectorBase< DIMENSION, _stride, value_type, _dataPtrType > &vector) const
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSIONoperator* (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &input) const
bool Equal (const ThisType &other) const
bool operator== (const ThisType &other) const
bool AlmostEqual (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
bool AlmostEquivalent (const ThisType &other, value_type tolerance=TypeTraits::Tolerance()) const
std::string ToString (void) const
void ToStream (std::ostream &outputStream) const
void ToStreamRaw (std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const
bool FromStreamRaw (std::istream &inputStream, const char delimiter=' ')
void SerializeRaw (std::ostream &outputStream) const
void DeSerializeRaw (std::istream &inputStream)

Static Public Member Functions

static CISST_EXPORT const ThisTypeIdentity ()

Protected Attributes

RotationType RotationMember
TranslationType TranslationMember

Detailed Description

template<class _rotationType>
class vctFrameBase< _rotationType >

Template base class for a frame.

The template parameter allows to change the orientation representation as well as the dimension. The orientation (or rotation) type must define an enum DIMENSION which is used to determine the size of the vector representing the translation (see vctFixedSizeVector).

This templating allows to create a frame based on a quaternion (dimension 3) or a matrix (dimension 2 or 3).

Parameters
_rotationTypeThe type of rotation
See also
vctQuaternionRotation3 vctMatrixRotation3 vctFixedSizeVector

Member Typedef Documentation

◆ RotationType

template<class _rotationType>
typedef _rotationType vctFrameBase< _rotationType >::RotationType

◆ ThisType

template<class _rotationType>
typedef vctFrameBase<_rotationType> vctFrameBase< _rotationType >::ThisType

◆ TranslationType

template<class _rotationType>
typedef vctFixedSizeVector<value_type, DIMENSION> vctFrameBase< _rotationType >::TranslationType

◆ TypeTraits

template<class _rotationType>
typedef cmnTypeTraits<value_type> vctFrameBase< _rotationType >::TypeTraits

Member Enumeration Documentation

◆ anonymous enum

template<class _rotationType>
anonymous enum
Enumerator
DIMENSION 

Constructor & Destructor Documentation

◆ vctFrameBase() [1/4]

template<class _rotationType>
vctFrameBase< _rotationType >::vctFrameBase ( void )
inline

Default constructor. Sets the rotation matrix to identity.

◆ vctFrameBase() [2/4]

template<class _rotationType>
template<stride_type __stride, class __dataPtrType>
vctFrameBase< _rotationType >::vctFrameBase ( const RotationType & rotation,
const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & translation )
inline

Constructor from a translation and a rotation.

◆ vctFrameBase() [3/4]

template<class _rotationType>
template<class __containerType>
vctFrameBase< _rotationType >::vctFrameBase ( const vctFrame4x4ConstBase< __containerType > & other)
inlineexplicit

Constructor from a vctFrame4x4. This constructor uses the method From which will test if the input is normalized. If the input is not normalized it will throw an exception of type std::runtime_error.

◆ vctFrameBase() [4/4]

template<class _rotationType>
template<class __containerType>
vctFrameBase< _rotationType >::vctFrameBase ( const vctFrame4x4ConstBase< __containerType > & other,
bool normalizeInput )
inline

Constructor from a vctFrame4x4. This constructor uses the method FromNormalized or FromRaw based on the second argument (use VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE).

Member Function Documentation

◆ AlmostEqual()

template<class _rotationType>
bool vctFrameBase< _rotationType >::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

◆ AlmostEquivalent()

template<class _rotationType>
bool vctFrameBase< _rotationType >::AlmostEquivalent ( const ThisType & other,
value_type tolerance = TypeTraits::Tolerance() ) const
inline

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

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

See also
AlmostEqual

◆ ApplyInverseTo() [1/9]

template<class _rotationType>
ThisType vctFrameBase< _rotationType >::ApplyInverseTo ( const ThisType & input) const
inline

◆ ApplyInverseTo() [2/9]

template<class _rotationType>
void vctFrameBase< _rotationType >::ApplyInverseTo ( const ThisType & input,
ThisType & output ) const
inline

◆ ApplyInverseTo() [3/9]

template<class _rotationType>
template<class __matrixOwnerType1, class __matrixOwnerType2>
void vctFrameBase< _rotationType >::ApplyInverseTo ( const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > & input,
vctDynamicMatrixBase< __matrixOwnerType2, value_type > & output ) const
inline

Apply the inverse transofrmation to a dynamic matrix of DIMENSION rows. Store the result to a second dynamic matrix.

◆ ApplyInverseTo() [4/9]

template<class _rotationType>
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::ApplyInverseTo ( const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & input) const
inline

Apply the inverse transformation to a dynamic vector of size DIMENSION. The result is returned by value.

Parameters
inputThe input vector
Returns
The output vector

◆ ApplyInverseTo() [5/9]

template<class _rotationType>
template<class _vectorOwnerType1, class _vectorOwnerType2>
void vctFrameBase< _rotationType >::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
inputThe input vector
outputThe output vector

◆ ApplyInverseTo() [6/9]

template<class _rotationType>
template<class _vectorOwnerType1, stride_type __stride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::ApplyInverseTo ( const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > & input,
vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > & output ) const
inline

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

◆ ApplyInverseTo() [7/9]

template<class _rotationType>
template<size_type __cols, stride_type __rowStride1, stride_type __colStride1, class __dataPtrType1, stride_type __rowStride2, stride_type __colStride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::ApplyInverseTo ( const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > & input,
vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > & output ) const
inline

Apply the inverse transform to a fixed-size matrix of three rows

◆ ApplyInverseTo() [8/9]

template<class _rotationType>
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::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
inputThe input vector
Returns
The output vector

◆ ApplyInverseTo() [9/9]

template<class _rotationType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::ApplyInverseTo ( const vctFixedSizeConstVectorBase< DIMENSION, __stride1, value_type, __dataPtrType1 > & input,
vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > & output ) const
inline

◆ ApplyTo() [1/10]

template<class _rotationType>
ThisType vctFrameBase< _rotationType >::ApplyTo ( const ThisType & 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
inputThe input transformation
Returns
The output transformation

◆ ApplyTo() [2/10]

template<class _rotationType>
void vctFrameBase< _rotationType >::ApplyTo ( const ThisType & input,
ThisType & 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]

◆ ApplyTo() [3/10]

template<class _rotationType>
template<class __matrixOwnerType1, class __matrixOwnerType2>
void vctFrameBase< _rotationType >::ApplyTo ( const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > & input,
vctDynamicMatrixBase< __matrixOwnerType2, value_type > & output ) const
inline

Apply the transofrmation to a dynamic matrix of DIMENSION rows. Store the result to a second dynamic matrix.

◆ ApplyTo() [4/10]

template<class _rotationType>
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::ApplyTo ( const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & input) const
inline

Apply the transformation to a dynamic vector of size DIMENSION. The result is returned by value.

Parameters
inputThe input vector
Returns
The output vector

◆ ApplyTo() [5/10]

template<class _rotationType>
template<class _vectorOwnerType1, class _vectorOwnerType2>
void vctFrameBase< _rotationType >::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.

◆ ApplyTo() [6/10]

template<class _rotationType>
template<class _vectorOwnerType1, stride_type __stride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::ApplyTo ( const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > & input,
vctFixedSizeVectorBase< DIMENSION, __stride2, value_type, __dataPtrType2 > & output ) const
inline

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

◆ ApplyTo() [7/10]

template<class _rotationType>
template<size_type __cols, stride_type __rowStride1, stride_type __colStride1, class __dataPtrType1, stride_type __rowStride2, stride_type __colStride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::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

◆ ApplyTo() [8/10]

template<class _rotationType>
template<stride_type __stride, class __dataPtrType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::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
inputThe input vector
Returns
The output vector

◆ ApplyTo() [9/10]

template<class _rotationType>
template<stride_type __stride1, class __dataPtrType1, stride_type __stride2, class __dataPtrType2>
void vctFrameBase< _rotationType >::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
inputThe input vector
outputThe output vector

◆ ApplyTo() [10/10]

template<class _rotationType>
void vctFrameBase< _rotationType >::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.

◆ Assign() [1/2]

template<class _rotationType>
template<stride_type __stride, class __dataPtrType>
ThisType & vctFrameBase< _rotationType >::Assign ( const RotationType & rotation,
const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & translation )
inline

◆ Assign() [2/2]

template<class _rotationType>
ThisType & vctFrameBase< _rotationType >::Assign ( const ThisType & otherFrame)
inline

◆ DeSerializeRaw()

template<class _rotationType>
void vctFrameBase< _rotationType >::DeSerializeRaw ( std::istream & inputStream)
inline

Binary deserialization

◆ Equal()

template<class _rotationType>
bool vctFrameBase< _rotationType >::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

◆ From() [1/2]

template<class _rotationType>
template<class __containerType>
ThisType & vctFrameBase< _rotationType >::From ( const vctFrame4x4ConstBase< __containerType > & other)
inline

Conversion methods from another frame derived from vctFrame4x4Base (i.e. homogeneous matrix). As for rotation, From will throw and exception if the input rotation is not normalized. FromNormalized will normalized the result and FromRaw will use the input as is.

◆ From() [2/2]

template<class _rotationType>
template<class __rotationType>
ThisType & vctFrameBase< _rotationType >::From ( const vctFrameBase< __rotationType > & other)
inline

Conversion methods from another frame derived from vctFrameBase (i.e. composed of rotation and translation). As for rotation, From will throw and exception if the input rotation is not normalized. FromNormalized will normalized the result and FromRaw will use the input as is.

◆ FromNormalized() [1/2]

template<class _rotationType>
template<class __containerType>
ThisType & vctFrameBase< _rotationType >::FromNormalized ( const vctFrame4x4ConstBase< __containerType > & other)
inline

◆ FromNormalized() [2/2]

template<class _rotationType>
template<class __rotationType>
ThisType & vctFrameBase< _rotationType >::FromNormalized ( const vctFrameBase< __rotationType > & other)
inline

◆ FromRaw() [1/2]

template<class _rotationType>
template<class __containerType>
ThisType & vctFrameBase< _rotationType >::FromRaw ( const vctFrame4x4ConstBase< __containerType > & other)
inline

◆ FromRaw() [2/2]

template<class _rotationType>
template<class __rotationType>
ThisType & vctFrameBase< _rotationType >::FromRaw ( const vctFrameBase< __rotationType > & other)
inline

◆ FromStreamRaw()

template<class _rotationType>
bool vctFrameBase< _rotationType >::FromStreamRaw ( std::istream & inputStream,
const char delimiter = ' ' )
inline

Read from an unformatted text input (e.g., one created by ToStreamRaw). Returns true if successful.

◆ GetRotation()

template<class _rotationType>
RotationType vctFrameBase< _rotationType >::GetRotation ( void ) const
inline

◆ GetTranslation()

template<class _rotationType>
TranslationType vctFrameBase< _rotationType >::GetTranslation ( void ) const
inline

◆ Identity()

template<class _rotationType>
CISST_EXPORT const ThisType & vctFrameBase< _rotationType >::Identity ( )
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().

◆ Inverse()

template<class _rotationType>
ThisType vctFrameBase< _rotationType >::Inverse ( void ) const
inline

◆ InverseOf()

template<class _rotationType>
ThisType & vctFrameBase< _rotationType >::InverseOf ( const ThisType & otherFrame)
inline

◆ InverseSelf()

template<class _rotationType>
ThisType & vctFrameBase< _rotationType >::InverseSelf ( void )
inline

Inverse this frame.

◆ IsNormalized()

template<class _rotationType>
bool vctFrameBase< _rotationType >::IsNormalized ( value_type tolerance = TypeTraits::Tolerance()) const
inline

Test if the frame is normalized. This methods checks if the rotation part of the frame is normalized.

◆ NormalizedSelf()

template<class _rotationType>
ThisType & vctFrameBase< _rotationType >::NormalizedSelf ( void )
inline

Normalizes this frame. This method normalizes the rotation part of the matrix.

◆ operator*() [1/2]

template<class _rotationType>
template<class _vectorOwnerType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::operator* ( const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & input) const
inline

◆ operator*() [2/2]

template<class _rotationType>
template<stride_type _stride, class _dataPtrType>
vctFixedSizeVector< value_type, DIMENSION > vctFrameBase< _rotationType >::operator* ( const vctFixedSizeConstVectorBase< DIMENSION, _stride, value_type, _dataPtrType > & vector) const
inline

Implement operator * between frame and fixed or dynamic vector of length DIMENSION. The return value is always a fixed-size vector.

◆ operator==()

template<class _rotationType>
bool vctFrameBase< _rotationType >::operator== ( const ThisType & other) const
inline

◆ ProductOf()

template<class _rotationType>
void vctFrameBase< _rotationType >::ProductOf ( const ThisType & left,
ThisType & right )
inline

Set this frame as the compose two transformations. This method is provided to be consistent with all other containers which provide the method "ProductOf" and the operator "*".

◆ Rotation() [1/2]

template<class _rotationType>
RotationType & vctFrameBase< _rotationType >::Rotation ( void )
inline

◆ Rotation() [2/2]

template<class _rotationType>
const RotationType & vctFrameBase< _rotationType >::Rotation ( void ) const
inline

◆ SerializeRaw()

template<class _rotationType>
void vctFrameBase< _rotationType >::SerializeRaw ( std::ostream & outputStream) const
inline

Binary serialization

◆ SetRotation()

template<class _rotationType>
void vctFrameBase< _rotationType >::SetRotation ( const RotationType & rot)
inline

◆ SetTranslation()

template<class _rotationType>
void vctFrameBase< _rotationType >::SetTranslation ( const TranslationType & trans)
inline

◆ ToStream()

template<class _rotationType>
void vctFrameBase< _rotationType >::ToStream ( std::ostream & outputStream) const
inline

Print the matrix in a human readable format

◆ ToStreamRaw()

template<class _rotationType>
void vctFrameBase< _rotationType >::ToStreamRaw ( std::ostream & outputStream,
const char delimiter = ' ',
bool headerOnly = false,
const std::string & headerPrefix = "" ) const
inline

◆ ToString()

template<class _rotationType>
std::string vctFrameBase< _rotationType >::ToString ( void ) const
inline

◆ Translation() [1/2]

template<class _rotationType>
TranslationType & vctFrameBase< _rotationType >::Translation ( void )
inline

◆ Translation() [2/2]

template<class _rotationType>
const TranslationType & vctFrameBase< _rotationType >::Translation ( void ) const
inline

◆ VCT_CONTAINER_TRAITS_TYPEDEFS()

template<class _rotationType>
vctFrameBase< _rotationType >::VCT_CONTAINER_TRAITS_TYPEDEFS ( typename _rotationType::value_type )

Member Data Documentation

◆ RotationMember

template<class _rotationType>
RotationType vctFrameBase< _rotationType >::RotationMember
protected

◆ TranslationMember

template<class _rotationType>
TranslationType vctFrameBase< _rotationType >::TranslationMember
protected

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