cisst-saw
Loading...
Searching...
No Matches
vctQuaternionRotation3Base.h File Reference

Declaration of vctQuaternionRotation3Base. More...

Go to the source code of this file.

Classes

class  vctQuaternionRotation3Base< _containerType >
 Define a rotation quaternion for a space of dimension 3. More...

Macros

#define _vctQuaternionRotation3Base_h

Functions

template<class _quaternionType, class _matrixType>
void vctQuaternionRotation3BaseFromRaw (vctQuaternionRotation3Base< _quaternionType > &quaternionRotation, const vctMatrixRotation3Base< _matrixType > &matrixRotation)
template<class _containerType, class _elementType, vct::stride_type _stride, class _dataPtrType>
vctFixedSizeVector< _elementType, 3 > operator* (const vctQuaternionRotation3Base< _containerType > &rotationQuaternion, const vctFixedSizeConstVectorBase< 3, _stride, _elementType, _dataPtrType > &vector)
template<class _containerType, class _elementType, class _vectorOwnerType>
vctFixedSizeVector< _elementType, 3 > operator* (const vctQuaternionRotation3Base< _containerType > &rotationQuaternion, const vctDynamicConstVectorBase< _vectorOwnerType, _elementType > &vector)
template<class _elementType, vct::stride_type __strideOut, class __dataPtrTypeOut>
void vctQuaternionVectorProductByElements (const _elementType qX, const _elementType qY, const _elementType qZ, const _elementType qR, const _elementType vX, const _elementType vY, const _elementType vZ, vctFixedSizeVectorBase< 3, __strideOut, _elementType, __dataPtrTypeOut > &output)

Detailed Description

Macro Definition Documentation

◆ _vctQuaternionRotation3Base_h

#define _vctQuaternionRotation3Base_h

Function Documentation

◆ operator*() [1/2]

template<class _containerType, class _elementType, class _vectorOwnerType>
vctFixedSizeVector< _elementType, 3 > operator* ( const vctQuaternionRotation3Base< _containerType > & rotationQuaternion,
const vctDynamicConstVectorBase< _vectorOwnerType, _elementType > & vector )
inline

◆ operator*() [2/2]

template<class _containerType, class _elementType, vct::stride_type _stride, class _dataPtrType>
vctFixedSizeVector< _elementType, 3 > operator* ( const vctQuaternionRotation3Base< _containerType > & rotationQuaternion,
const vctFixedSizeConstVectorBase< 3, _stride, _elementType, _dataPtrType > & vector )
inline

◆ vctQuaternionRotation3BaseFromRaw()

template<class _quaternionType, class _matrixType>
void vctQuaternionRotation3BaseFromRaw ( vctQuaternionRotation3Base< _quaternionType > & quaternionRotation,
const vctMatrixRotation3Base< _matrixType > & matrixRotation )

◆ vctQuaternionVectorProductByElements()

template<class _elementType, vct::stride_type __strideOut, class __dataPtrTypeOut>
void vctQuaternionVectorProductByElements ( const _elementType qX,
const _elementType qY,
const _elementType qZ,
const _elementType qR,
const _elementType vX,
const _elementType vY,
const _elementType vZ,
vctFixedSizeVectorBase< 3, __strideOut, _elementType, __dataPtrTypeOut > & output )
inline

This is an auxiliary function to multiply q * v * q^ – where q is a quaternion, v is a vector (a pure imaginary quaternion), and q^ is the conjugate of q. This is the basic operation in applying a quaternion rotation.