ERC CISST - cisst software

vctQuaternionRotation3Base< _containerType > Class Template Reference

#include <vctQuaternionRotation3Base.h>

Inheritance diagram for vctQuaternionRotation3Base< _containerType >:

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

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class _containerType>
class vctQuaternionRotation3Base< _containerType >

Define a rotation quaternion for a space of dimension 3.

This class is templated by the element type. It is derived from vctQuaternionBase. This class is templated by the type of container used to store the quaternion. It is an "inner" class of the library, i.e. a regular user should use either the predefined type vctQuatRot3 or the class vctQuaternionRotation3.

Parameters:
_containerType The type of container used for the quaternion.
See also:
vctQuaternionRotation3, vctQuaternionBase

Definition at line 75 of file vctQuaternionRotation3Base.h.

Public Types

Public Member Functions

Conversion from normalized input.
These methods will check that the input is normalized. If the input is not normalized, an exception (std::runtime_error) will be thrown using cmnThrow().

Note:
Since all exceptions are thrown using cmnThrow(), it is possible to configure these methods to use abort() if the normalization requirements are not met (see cmnThrow()).


Conversion and normalization.
These method will accept any input and attempt to either normalize the input and then convert or convert and then normalize the quaternion itself.
The order depends on the type of input.

Conversion.
These method don't check if the input is normalized nor try to normalize the results. They should be used with caution since the resulting rotation (in this case a quaternion) might not be normalized.

Deprecated methods

Static Public Member Functions

Protected Member Functions


Member Typedef Documentation

template<class _containerType>
typedef vctQuaternionBase<_containerType> vctQuaternionRotation3Base< _containerType >::BaseType

Type of base class.

Reimplemented from vctQuaternionBase< _containerType >.

Reimplemented in vctQuaternionRotation3< _elementType >, and vctQuaternionRotation3< double >.

Definition at line 82 of file vctQuaternionRotation3Base.h.

template<class _containerType>
typedef _containerType vctQuaternionRotation3Base< _containerType >::ContainerType

Type of container. This must be a vector of 4 elements (either fixed size or dynamic). In any case, this class should only be used by the library programmers.

Reimplemented from vctQuaternionBase< _containerType >.

Definition at line 87 of file vctQuaternionRotation3Base.h.


Constructor & Destructor Documentation

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

Default constructor. Sets the rotation quaternion to identity.

Definition at line 124 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const ThisType quaternionRotation  )  [inline]

Copy constructor.

Parameters:
quaternionRotation A rotation quaternion.

Definition at line 134 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const value_type &  x,
const value_type &  y,
const value_type &  z,
const value_type &  r 
) throw (std::runtime_error) [inline]

Constructor from 4 elements.

Parameters:
x First component of the real part.
y Second component of the real part.
z Third component of the real part.
r The imaginary part.

Definition at line 164 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctMatrixRotation3Base< __containerType > &  matrixRotation  )  throw (std::runtime_error) [inline, explicit]

Constructor from a rotation matrix.

Parameters:
matrixRotation A rotation matrix.

Definition at line 177 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  )  throw (std::runtime_error) [inline]

Constructor from an axis and angle.

Parameters:
axisAngleRotation An axis/angle rotation.

Definition at line 188 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Constructor from a Rodriguez rotation.

Parameters:
rodriguezRotation A Rodriguez rotation.

Definition at line 200 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const ThisType quaternionRotation,
bool  normalizeInput 
) [inline]

Copy constructor.

Parameters:
quaternionRotation A rotation quaternion.
normalizeInput Force the input normalization.

Definition at line 238 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const value_type &  x,
const value_type &  y,
const value_type &  z,
const value_type &  r,
bool  normalizeInput 
) [inline]

Constructor from 4 elements.

Parameters:
x First component of the real part.
y Second component of the real part.
z Third component of the real part.
r The imaginary part.
normalizeInput Force the input normalization.

Definition at line 259 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctMatrixRotation3Base< __containerType > &  matrixRotation,
bool  normalizeInput 
) [inline, explicit]

Constructor from a rotation matrix.

Parameters:
matrixRotation A rotation matrix.
normalizeInput Force the input normalization.

Definition at line 278 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation,
bool  normalizeInput 
) [inline]

Constructor from an axis and angle.

Parameters:
axisAngleRotation An axis/angle rotation.
normalizeInput Force the input normalization.

Definition at line 295 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation,
bool  normalizeInput 
) [inline]

Constructor from a Rodriguez rotation.

Parameters:
rodriguezRotation A Rodriguez rotation.
normalizeInput Force the input normalization.

Definition at line 314 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const value_type &  x,
const value_type &  y,
const value_type &  z,
const value_type &  r 
) throw (std::runtime_error) [inline]

Constructor from 4 elements.

Parameters:
x First component of the real part.
y Second component of the real part.
z Third component of the real part.
r The imaginary part.

Definition at line 164 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctMatrixRotation3Base< __containerType > &  matrixRotation  )  throw (std::runtime_error) [inline, explicit]

Constructor from a rotation matrix.

Parameters:
matrixRotation A rotation matrix.

Definition at line 177 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation  )  throw (std::runtime_error) [inline]

Constructor from an axis and angle.

Parameters:
axisAngleRotation An axis/angle rotation.

Definition at line 188 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Constructor from a Rodriguez rotation.

Parameters:
rodriguezRotation A Rodriguez rotation.

Definition at line 200 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const ThisType quaternionRotation,
bool  normalizeInput 
) [inline]

Copy constructor.

Parameters:
quaternionRotation A rotation quaternion.
normalizeInput Force the input normalization.

Definition at line 238 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const value_type &  x,
const value_type &  y,
const value_type &  z,
const value_type &  r,
bool  normalizeInput 
) [inline]

Constructor from 4 elements.

Parameters:
x First component of the real part.
y Second component of the real part.
z Third component of the real part.
r The imaginary part.
normalizeInput Force the input normalization.

Definition at line 259 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctMatrixRotation3Base< __containerType > &  matrixRotation,
bool  normalizeInput 
) [inline, explicit]

Constructor from a rotation matrix.

Parameters:
matrixRotation A rotation matrix.
normalizeInput Force the input normalization.

Definition at line 278 of file vctQuaternionRotation3Base.h.

template<class _containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctAxisAngleRotation3< value_type > &  axisAngleRotation,
bool  normalizeInput 
) [inline]

Constructor from an axis and angle.

Parameters:
axisAngleRotation An axis/angle rotation.
normalizeInput Force the input normalization.

Definition at line 295 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
vctQuaternionRotation3Base< _containerType >::vctQuaternionRotation3Base ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation,
bool  normalizeInput 
) [inline]

Constructor from a Rodriguez rotation.

Parameters:
rodriguezRotation A Rodriguez rotation.
normalizeInput Force the input normalization.

Definition at line 314 of file vctQuaternionRotation3Base.h.


Member Function Documentation

template<class _containerType>
void vctQuaternionRotation3Base< _containerType >::ThrowUnlessIsNormalized ( void   )  const throw (std::runtime_error) [inline, protected]

Throw an exception unless this rotation is normalized.

Definition at line 97 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class _inputType>
void vctQuaternionRotation3Base< _containerType >::ThrowUnlessIsNormalized ( const _inputType &  input  )  const throw (std::runtime_error) [inline, protected]

Throw an exception unless the input is normalized.

Parameters:
input An object with IsNormalized method.

Definition at line 108 of file vctQuaternionRotation3Base.h.

template<class _containerType>
void vctQuaternionRotation3Base< _containerType >::Allocate ( void   )  [inline, protected]

Allocate memory for the underlying container if needed. By default, this methods does nothing. For any container requiring a memory allocation, it is necessary to specialize this method.

Reimplemented from vctQuaternionBase< _containerType >.

Definition at line 118 of file vctQuaternionRotation3Base.h.

template<class _containerType>
static CISST_EXPORT const ThisType& vctQuaternionRotation3Base< _containerType >::Identity (  )  [static]

Const reference to the identity. In this case, (0, 0, 0, 1)

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::From ( value_type  x,
value_type  y,
value_type  z,
value_type  r 
) throw (std::runtime_error) [inline]

Conversion from 4 numbers. This method actually performs an assignement and then check that the result is normalized.

Definition at line 349 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::From ( const vctAxisAngleRotation3< value_type >  axisAngleRotation  )  throw (std::runtime_error) [inline]

Conversion from axis/angle.

Definition at line 357 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::From ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  throw (std::runtime_error) [inline]

Conversion from a Rodriguez rotation.

Definition at line 365 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::From ( const vctMatrixRotation3Base< __containerType > &  matrixRotation  )  throw (std::runtime_error) [inline]

Conversion from a rotation matrix.

Definition at line 373 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromNormalized ( value_type  x,
value_type  y,
value_type  z,
value_type  r 
) [inline]

Conversion from 4 numbers. This method actually performs an assignement and then normalize the quaternion (this).

Definition at line 395 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromNormalized ( const vctAxisAngleRotation3< value_type >  axisAngleRotation  )  [inline]

Conversion from axis/angle.

Definition at line 403 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromNormalized ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  [inline]

Conversion from a Rodriguez rotation.

Definition at line 410 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromNormalized ( const vctMatrixRotation3Base< __containerType > &  matrixRotation  )  [inline]

Conversion from a rotation matrix.

This method could normalize the input first, but the rotation matrix normalization relies on -1- a conversion to quaternion, -2- normalization and -3- a conversion back to rotation matrix. Therefore it converts to quaternion and then normalizes the resulting quaternion (this).

Definition at line 425 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromRaw ( const vctRodriguezRotation3Base< __containerType > &  rodriguezRotation  )  [inline]

Conversion from a Rodriguez rotation.

Definition at line 470 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::FromRaw ( const vctMatrixRotation3Base< __containerType > &  matrixRotation  )  [inline]

Conversion from a rotation matrix. The algorithm is based on http://www.j3d.org/matrix_faq/matrfaq_latest.html. This method is important since we use it to convert a rotation matrix to a quaternion to normalize the matrix. The method From can not be used since it asserts that the input matrix is already normalized.

Parameters:
matrixRotation A rotation matrix

Definition at line 484 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::From ( const ThisType otherRotation  )  [inline]

A complementary form of assigning one quaternion rotation to another. The method is provided mostly for generic programming interfaces, and for testing various operations on rotations

Definition at line 496 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::NormalizedOf ( const ThisType otherQuaternion  )  [inline]

Sets this rotation quaternion as the normalized version of another one.

Parameters:
otherQuaternion rotation quaternion used to compute the normalized quaternion.

Definition at line 503 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::NormalizedSelf ( void   )  [inline]

Normalizes this quaternion rotation.

Definition at line 512 of file vctQuaternionRotation3Base.h.

Referenced by vctMatrixRotation3Base< vctFixedSizeMatrix< double, 3, 3, _rowMajor > >::NormalizedSelf().

template<class _containerType>
ThisType vctQuaternionRotation3Base< _containerType >::Normalized ( void   )  const [inline]

Returns the normalized version of this quaternion rotation. This method returns a copy of the normalized version and does not modify this quaternion.

Definition at line 522 of file vctQuaternionRotation3Base.h.

Referenced by vctAxisAngleRotation3< _elementType >::FromNormalized(), vctRodriguezRotation3Base< vctFixedSizeVector< _elementType, 3 > >::FromNormalized(), and vctMatrixRotation3Base< vctFixedSizeMatrix< double, 3, 3, _rowMajor > >::FromNormalized().

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::InverseSelf ( void   )  [inline]

Inverse this rotation quaternion. This methods assumes that the quaternion is normalized and sets this unit quaternion as its transposed.

Definition at line 532 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType& vctQuaternionRotation3Base< _containerType >::InverseOf ( const ThisType otherRotation  )  [inline]

Set this rotation as the inverse of another one.

Definition at line 539 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType vctQuaternionRotation3Base< _containerType >::Inverse ( void   )  const [inline]

Create and return by copy the inverse of this matrix. This method is not the most efficient since it requires a copy.

Definition at line 547 of file vctQuaternionRotation3Base.h.

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

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

Parameters:
input The input vector
output The output vector

Definition at line 562 of file vctQuaternionRotation3Base.h.

Referenced by operator *().

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

Apply the rotation to a vector of fixed size 3. 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 593 of file vctQuaternionRotation3Base.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 vctQuaternionRotation3Base< _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 rotation to a fixed size matrix with 3 rows. The result is stored in another fixed matrix.

Definition at line 615 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __matrixOwnerType1, class __matrixOwnerType2>
void vctQuaternionRotation3Base< _containerType >::ApplyTo ( const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &  input,
vctDynamicMatrixBase< __matrixOwnerType2, value_type > &  output 
) const [inline]

Apply this rotation to a dynamic matrix with 3 rows. The result is stored in another dynamic matrix.

Definition at line 631 of file vctQuaternionRotation3Base.h.

template<class _containerType>
void vctQuaternionRotation3Base< _containerType >::ApplyTo ( const ThisType input,
ThisType output 
) const [inline]

Apply the rotation to another rotation. The result is stored into a vctQuaternionRotation3Base (ThisType) provided by the caller and passed by reference.

Parameters:
input The input rotation
output The output rotation

Definition at line 653 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType vctQuaternionRotation3Base< _containerType >::ApplyTo ( const ThisType input  )  const [inline]

Apply the rotation to another rotation. 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 rotation
Returns:
The output rotation

Definition at line 667 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class _vectorOwnerType1, class _vectorOwnerType2>
void vctQuaternionRotation3Base< _containerType >::ApplyTo ( const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &  input,
vctDynamicVectorBase< _vectorOwnerType2, value_type > &  output 
) const [inline]

Apply the rotation to a dynamic vector. The result is stored into another dynamic vector passed by reference by the caller. It is assumed that both are of size 3.

Definition at line 680 of file vctQuaternionRotation3Base.h.

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

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

Parameters:
input The input vector
output The output vector

Definition at line 704 of file vctQuaternionRotation3Base.h.

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

Apply the the inverse of the rotation to a vector of fixed size 3. 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 735 of file vctQuaternionRotation3Base.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 vctQuaternionRotation3Base< _containerType >::ApplyInverseTo ( const vctFixedSizeConstMatrixBase< DIMENSION, __cols, __rowStride1, __colStride1, value_type, __dataPtrType1 > &  input,
vctFixedSizeMatrixBase< DIMENSION, __cols, __rowStride2, __colStride2, value_type, __dataPtrType2 > &  output 
) const [inline]

Apply this inverse rotation to a fixed size matrix with 3 rows. The result is stored in another fixed matrix.

Definition at line 757 of file vctQuaternionRotation3Base.h.

template<class _containerType>
void vctQuaternionRotation3Base< _containerType >::ApplyInverseTo ( const ThisType input,
ThisType output 
) const [inline]

Apply the inverse of the rotation to another rotation. The result is stored into a vctQuaternionRotation3Base (ThisType) provided by the caller and passed by reference.

Parameters:
input The input rotation
output The output rotation

Definition at line 777 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType vctQuaternionRotation3Base< _containerType >::ApplyInverseTo ( const ThisType input  )  const [inline]

Apply the inverse of the rotation to another rotation. 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 rotation
Returns:
The output rotation

Definition at line 791 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class _vectorOwnerType1, class _vectorOwnerType2>
void vctQuaternionRotation3Base< _containerType >::ApplyInverseTo ( const vctDynamicConstVectorBase< _vectorOwnerType1, value_type > &  input,
vctDynamicVectorBase< _vectorOwnerType2, value_type > &  output 
) const [inline]

Apply the the inverse of the rotation to a dynamic vector. The result is stored into another dynamic vector passed by reference by the caller. It is assumed that both are of size 3.

Definition at line 804 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<class __matrixOwnerType1, class __matrixOwnerType2>
void vctQuaternionRotation3Base< _containerType >::ApplyInverseTo ( const vctDynamicConstMatrixBase< __matrixOwnerType1, value_type > &  input,
vctDynamicMatrixBase< __matrixOwnerType2, value_type > &  output 
) const [inline]

Apply this rotation inverse to a dynamic matrix with 3 rows. The result is stored in another dynamic matrix.

Definition at line 821 of file vctQuaternionRotation3Base.h.

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

Return true if this quaternion rotation is equivalent to the other quaternion rotation, up to the given tolerance. Quaternion rotation may be effectively equivalent if one is elementwise equal to the other, or if one is the negation of the other.

The tolerance factor is used to compare each of the elements of the difference vector.

See also:
AlmostEqual

Definition at line 847 of file vctQuaternionRotation3Base.h.

template<class _containerType>
ThisType vctQuaternionRotation3Base< _containerType >::operator * ( const ThisType input  )  const [inline]

Multiply two rotation quaternions and return the result as a normalized rotation quaternion.

Returns:
(*this) * other
Note:
this function overrides and shadows the operator * defined for basic quaternion type. The latter returns a vctQuaternion, while this version returns a specialized vctQuaternionRotation3Base

Definition at line 871 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
CISST_DEPRECATED const ThisType& vctQuaternionRotation3Base< _containerType >::From ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &  axis,
const AngleType &  angle 
) [inline]

Convert from a unit vector and an angle. It is important to note that this method doesn't normalize the axis vector but asserts that it is normalized (in debug mode only).

Parameters:
axis A unit vector of size 3.
angle The angle in radian
Note:
This method is deprecated. Use From(vctAxisAngleRotation3) instead.

Definition at line 896 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
CISST_DEPRECATED const ThisType& vctQuaternionRotation3Base< _containerType >::From ( const vctFixedSizeConstVectorBase< 3, __stride, value_type, __dataPtrType > &  rodriguezRotation  )  [inline]

Convert from ``Rodriguez rotation'' to rotation quaternion. A Rodriguez rotation is a 3-element vector whose direction is the rotation axis, and magnitude is the rotation angle in radians.

Parameters:
rodriguezRotation the Rodriguez rotation
Note:
For reasons of numerical stability, if the magnitude of the Rodriguez vector is less than cmnTypeTraits<value_type>::Tolerance(), it is regarded as zero.

This method is deprecated. Use From(vctRodriguezRotation3Base) instead.

Definition at line 923 of file vctQuaternionRotation3Base.h.

template<class _containerType>
template<stride_type __stride, class __dataPtrType>
CISST_DEPRECATED void vctQuaternionRotation3Base< _containerType >::GetAxisAngle ( vctFixedSizeVectorBase< 3, __stride, value_type, __dataPtrType > &  axis,
value_type &  angle 
) [inline]

Convert to an axis and angle representation. It is important to note that this method doesn't check if the rotation quaternion is normalized or not.

Parameters:
axis The axis of the rotation
angle The angle around the axis to match the rotation
Note:
This method is deprecated. Use vctAxisAngleRotation3.From() instead.

Definition at line 945 of file vctQuaternionRotation3Base.h.


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