|
| VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) |
|
| vctAxisAngleRotation3 () |
|
ThisType & | Assign (const ThisType &other) |
|
const AxisType & | Axis (void) const |
|
AxisType & | Axis (void) |
|
const AngleType & | Angle (void) const |
|
AngleType & | Angle (void) |
|
ThisType & | InverseSelf (void) |
|
ThisType & | InverseOf (const ThisType &otherRotation) |
|
ThisType | Inverse (void) const |
|
ThisType & | NormalizedSelf (void) |
|
ThisType & | NormalizedOf (const ThisType &otherRotation) |
|
ThisType | Normalized (void) const |
|
bool | IsNormalized (value_type tolerance=TypeTraits::Tolerance()) 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 |
|
void | SerializeRaw (std::ostream &outputStream) const |
|
void | DeSerializeRaw (std::istream &inputStream) |
|
|
These constructors will check that the input is valid, i.e. normalized. If the input is not normalized, an exception (of type std::runtime_error ) will be thrown. Each constructor uses the corresponding From() method based on the input type.
- Note
- See the cmnThrow() function if an
abort is better than an exception for your application.
|
template<stride_type __stride, class __dataPtrType > |
| vctAxisAngleRotation3 (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis, const AngleType angle) throw (std::runtime_error) |
|
template<class _vectorOwnerType > |
| vctAxisAngleRotation3 (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &axis, AngleType angle) throw (std::runtime_error) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctQuaternionRotation3Base< _containerType > &quaternionRotation) throw (std::runtime_error) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctMatrixRotation3Base< _containerType > &matrixRotation) throw (std::runtime_error) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctRodriguezRotation3Base< _containerType > &rodriguezRotation) throw (std::runtime_error) |
|
|
These constructors will either assume that the input is normalized or normalize the input (a copy of it, if required) based on the last parameter provided:
-
If the normalization flag is set to VCT_DO_NOT_NORMALIZE, the input is considered already normalized and the constructor will not perform any sanity check. This can lead to numerical instabilities which have to be handled by the caller.
-
If the normalization flag is set to VCT_NORMALIZE, the input will be normalized. This option should be used whenever it is important to obtain a result as "normalized" as possible.
|
template<stride_type __stride, class __dataPtrType > |
| vctAxisAngleRotation3 (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis, const AngleType angle, bool normalizeInput) |
|
template<class _vectorOwnerType > |
| vctAxisAngleRotation3 (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &axis, AngleType angle, bool normalizeInput) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctQuaternionRotation3Base< _containerType > &quaternionRotation, bool normalizeInput) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctMatrixRotation3Base< _containerType > &matrixRotation, bool normalizeInput) |
|
template<class _containerType > |
| vctAxisAngleRotation3 (const vctRodriguezRotation3Base< _containerType > &rodriguezRotation, bool normalizeInput) |
|
|
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()).
|
template<stride_type __stride, class __dataPtrType > |
ThisType & | From (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis, const AngleType angle) throw (std::runtime_error) |
|
template<class _vectorOwnerType > |
ThisType & | From (const vctDynamicConstVectorBase< _vectorOwnerType, value_type > &axis, AngleType angle) throw (std::runtime_error) |
|
template<class _containerType > |
ThisType & | From (const vctQuaternionRotation3Base< _containerType > &quaternionRotation) throw (std::runtime_error) |
|
template<class _containerType > |
ThisType & | From (const vctMatrixRotation3Base< _containerType > &matrixRotation) throw (std::runtime_error) |
|
template<class _containerType > |
ThisType & | From (const vctRodriguezRotation3Base< _containerType > &rodriguezRotation) throw (std::runtime_error) |
|
|
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.
|
template<stride_type __stride, class __dataPtrType > |
ThisType & | FromNormalized (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis, const AngleType angle) |
|
template<class _containerType > |
ThisType & | FromNormalized (const vctQuaternionRotation3Base< _containerType > &quaternionRotation) |
|
template<class _containerType > |
ThisType & | FromNormalized (const vctMatrixRotation3Base< _containerType > &matrixRotation) |
|
template<class _containerType > |
ThisType & | FromNormalized (const vctRodriguezRotation3Base< _containerType > &rodriguezRotation) |
|
|
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.
|
template<stride_type __stride, class __dataPtrType > |
ThisType & | FromRaw (const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > &axis, const AngleType angle) |
|
template<class _containerType > |
ThisType & | FromRaw (const vctQuaternionRotation3Base< _containerType > &quaternionRotation) |
|
template<class _containerType > |
ThisType & | FromRaw (const vctMatrixRotation3Base< _containerType > &matrixRotation) |
|
template<class _containerType > |
ThisType & | FromRaw (const vctRodriguezRotation3Base< _containerType > &rodriguezRotation) |
|
|
bool | Equal (const ThisType &other) const |
|
bool | operator== (const ThisType &other) const |
|
template<class _elementType>
class vctAxisAngleRotation3< _elementType >
Define a rotation based on an axis and an angle for a space of dimension 3.
This class is templated by the element type. It contains a fixed size vector and an angle.
- Parameters
-
_elementType | The type of elements. |
- See Also
- vctQuaternion