#include <vctAxisAngleRotation3.h>
Collaboration diagram for vctAxisAngleRotation3< _elementType >:

This class is templated by the element type. It contains a fixed size vector and an angle.
| _elementType | The type of elements. |
Definition at line 95 of file vctAxisAngleRotation3.h.
std::runtime_error) will be thrown using cmnThrow().
abort() if the normalization requirements are not met (see cmnThrow()). | vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | ) | [inline] |
Default constructor. Sets the axis to (1, 0, 0) and the angle to zero.
Definition at line 131 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Constructor from an axis and an angle.
| axis | A unit vector of size 3. | |
| angle | The angle in radian |
Definition at line 165 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & | axis, | |
| AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Constructor from an axis and an angle.
| axis | A unit vector of size 3. | |
| angle | The angle in radian |
Definition at line 177 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctQuaternionRotation3.
Definition at line 186 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctMatrixRotation3.
Definition at line 194 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctRodriguezRotation3.
Definition at line 202 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle, | |||
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from an axis and an angle.
| axis | A vector of size 3. | |
| angle | The angle in radian | |
| normalizeInput | Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE) |
Definition at line 239 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & | axis, | |
| AngleType | angle, | |||
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from an axis and an angle.
| axis | A vector of size 3. | |
| angle | The angle in radian | |
| normalizeInput | Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE) |
Definition at line 256 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctQuaternionRotation3.
Definition at line 269 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctMatrixRotation3.
Definition at line 281 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctRodriguezRotation3.
Definition at line 293 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Constructor from an axis and an angle.
| axis | A unit vector of size 3. | |
| angle | The angle in radian |
Definition at line 165 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & | axis, | |
| AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Constructor from an axis and an angle.
| axis | A unit vector of size 3. | |
| angle | The angle in radian |
Definition at line 177 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctQuaternionRotation3.
Definition at line 186 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctMatrixRotation3.
Definition at line 194 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation | ) | throw (std::runtime_error) [inline] |
Constructor from a vctRodriguezRotation3.
Definition at line 202 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle, | |||
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from an axis and an angle.
| axis | A vector of size 3. | |
| angle | The angle in radian | |
| normalizeInput | Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE) |
Definition at line 239 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & | axis, | |
| AngleType | angle, | |||
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from an axis and an angle.
| axis | A vector of size 3. | |
| angle | The angle in radian | |
| normalizeInput | Normalize the input or convert as is (VCT_NORMALIZE or VCT_DO_NOT_NORMALIZE) |
Definition at line 256 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctQuaternionRotation3.
Definition at line 269 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctMatrixRotation3.
Definition at line 281 of file vctAxisAngleRotation3.h.
| vctAxisAngleRotation3< _elementType >::vctAxisAngleRotation3 | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation, | |
| bool | normalizeInput | |||
| ) | [inline] |
Constructor from a vctRodriguezRotation3.
Definition at line 293 of file vctAxisAngleRotation3.h.
| void vctAxisAngleRotation3< _elementType >::ThrowUnlessIsNormalized | ( | void | ) | const throw (std::runtime_error) [inline, protected] |
Throw an exception unless this rotation is normalized.
Definition at line 111 of file vctAxisAngleRotation3.h.
References cmnThrow().
| void vctAxisAngleRotation3< _elementType >::ThrowUnlessIsNormalized | ( | const _inputType & | input | ) | const throw (std::runtime_error) [inline, protected] |
Throw an exception unless the input is normalized.
| input | An object with IsNormalized method. |
Definition at line 122 of file vctAxisAngleRotation3.h.
References cmnThrow().
| ThisType& vctAxisAngleRotation3< _elementType >::Assign | ( | const ThisType & | other | ) | [inline] |
Assignement method. This method doesn't perform any test on the input.
Definition at line 138 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType >::Assign(), and vctAxisAngleRotation3< _elementType >::Axis().
| static CISST_EXPORT const ThisType& vctAxisAngleRotation3< _elementType >::Identity | ( | ) | [static] |
Const reference to the identity. In this case, the axis is set to (1, 0, 0) and the angle is set to zero.
| const AxisType& vctAxisAngleRotation3< _elementType >::Axis | ( | void | ) | const [inline] |
Const reference to the rotation axis data member.
Definition at line 312 of file vctAxisAngleRotation3.h.
Referenced by vctAxisAngleRotation3< _elementType >::AlmostEqual(), vctAxisAngleRotation3< _elementType >::AlmostEquivalent(), vctAxisAngleRotation3< _elementType >::Assign(), vctAxisAngleRotation3< _elementType >::Equal(), vctRodriguezRotation3Base< vctFixedSizeVector< _elementType, 3 > >::FromRaw(), vctQuaternionRotation3Base< vctFixedSizeVector< double, 4 > >::FromRaw(), vctAxisAngleRotation3< _elementType >::InverseOf(), and vctAxisAngleRotation3< _elementType >::NormalizedOf().
| AxisType& vctAxisAngleRotation3< _elementType >::Axis | ( | void | ) | [inline] |
Reference to the rotation axis data member.
Definition at line 317 of file vctAxisAngleRotation3.h.
| const AngleType& vctAxisAngleRotation3< _elementType >::Angle | ( | void | ) | const [inline] |
Const reference to the rotation angle data member (in radians).
Definition at line 322 of file vctAxisAngleRotation3.h.
Referenced by vctAxisAngleRotation3< _elementType >::AlmostEqual(), vctAxisAngleRotation3< _elementType >::AlmostEquivalent(), vctAxisAngleRotation3< _elementType >::Assign(), vctAxisAngleRotation3< _elementType >::Equal(), vctRodriguezRotation3Base< vctFixedSizeVector< _elementType, 3 > >::FromRaw(), vctQuaternionRotation3Base< vctFixedSizeVector< double, 4 > >::FromRaw(), vctAxisAngleRotation3< _elementType >::Inverse(), vctAxisAngleRotation3< _elementType >::InverseOf(), and vctAxisAngleRotation3< _elementType >::NormalizedOf().
| AngleType& vctAxisAngleRotation3< _elementType >::Angle | ( | void | ) | [inline] |
Reference to the rotation angle data member (in radians).
Definition at line 327 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::From | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Conversion from an angle and an axis.
Definition at line 348 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::From | ( | const vctDynamicConstVectorBase< _vectorOwnerType, value_type > & | axis, | |
| AngleType | angle | |||
| ) | throw (std::runtime_error) [inline] |
Conversion from an angle and an axis.
Definition at line 359 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::From | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation | ) | throw (std::runtime_error) [inline] |
Conversion from a vctQuaternionRotation3.
Definition at line 373 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::From | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation | ) | throw (std::runtime_error) [inline] |
Conversion from a vctMatrixRotation3.
Definition at line 382 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::From | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation | ) | throw (std::runtime_error) [inline] |
Conversion from a vctRodriguezRotation3.
Definition at line 391 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::FromNormalized | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle | |||
| ) | [inline] |
Conversion from an axis and an angle.
Definition at line 414 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::FromNormalized | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation | ) | [inline] |
Conversion from an axis and an angle.
Definition at line 424 of file vctAxisAngleRotation3.h.
References vctQuaternionRotation3Base< _containerType >::Normalized().
| ThisType& vctAxisAngleRotation3< _elementType >::FromNormalized | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation | ) | [inline] |
Conversion from a vctMatrixRotation3.
Definition at line 430 of file vctAxisAngleRotation3.h.
References vctMatrixRotation3ConstBase< _containerType >::Normalized().
| ThisType& vctAxisAngleRotation3< _elementType >::FromNormalized | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation | ) | [inline] |
Conversion from a vctRodriguezRotation3.
Definition at line 436 of file vctAxisAngleRotation3.h.
References vctRodriguezRotation3Base< _containerType >::Normalized().
| ThisType& vctAxisAngleRotation3< _elementType >::FromRaw | ( | const vctFixedSizeConstVectorBase< DIMENSION, __stride, value_type, __dataPtrType > & | axis, | |
| const AngleType | angle | |||
| ) | [inline] |
Conversion from an axis and an angle.
Definition at line 455 of file vctAxisAngleRotation3.h.
References vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType >::Assign().
| ThisType& vctAxisAngleRotation3< _elementType >::FromRaw | ( | const vctQuaternionRotation3Base< _containerType > & | quaternionRotation | ) | [inline] |
Conversion from a vctQuaternionRotation3.
Definition at line 465 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::FromRaw | ( | const vctMatrixRotation3Base< _containerType > & | matrixRotation | ) | [inline] |
Conversion from a vctMatrixRotation3.
Definition at line 472 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::FromRaw | ( | const vctRodriguezRotation3Base< _containerType > & | rodriguezRotation | ) | [inline] |
Conversion from a vctRodriguezRotation3.
Definition at line 479 of file vctAxisAngleRotation3.h.
| ThisType& vctAxisAngleRotation3< _elementType >::InverseSelf | ( | void | ) | [inline] |
Inverse this axis angle rotation. This methods assumes that the axis is normalized and the angle is betweem 0 and 2 * PI. The axis is not changed but the angle is set to 2 * PI minus the previous value.
Definition at line 491 of file vctAxisAngleRotation3.h.
References cmnPI.
| ThisType& vctAxisAngleRotation3< _elementType >::InverseOf | ( | const ThisType & | otherRotation | ) | [inline] |
Set this rotation as the inverse of another one. See also InverseSelf().
Definition at line 498 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType >::Assign(), vctAxisAngleRotation3< _elementType >::Axis(), and cmnPI.
| ThisType vctAxisAngleRotation3< _elementType >::Inverse | ( | void | ) | const [inline] |
Create and return by copy the inverse of this rotation. This method is not the most efficient since it requires a copy. See also InverseSelf().
Definition at line 507 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), and cmnPI.
| ThisType& vctAxisAngleRotation3< _elementType >::NormalizedSelf | ( | void | ) | [inline] |
Normalizes this rotation. This method first normalizes the axis and then modifies the angle so that it's value is between 0 and 2 * PI.
Definition at line 516 of file vctAxisAngleRotation3.h.
References cmnPI, and vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType >::NormalizedSelf().
Referenced by vctAxisAngleRotation3< _elementType >::Normalized().
| ThisType& vctAxisAngleRotation3< _elementType >::NormalizedOf | ( | const ThisType & | otherRotation | ) | [inline] |
Sets this rotation as the normalized version of another one.
| otherRotation | Axis angle rotation used to compute the normalized rotation. |
Definition at line 530 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), vctFixedSizeVectorBase< _size, _stride, _elementType, _dataPtrType >::Assign(), and vctAxisAngleRotation3< _elementType >::Axis().
| ThisType vctAxisAngleRotation3< _elementType >::Normalized | ( | void | ) | const [inline] |
Returns the normalized version of this rotation. This method returns a copy of the normalized rotation and does not modify this rotation. See also NormalizedSelf().
Definition at line 540 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::NormalizedSelf().
Referenced by vctRodriguezRotation3Base< vctFixedSizeVector< _elementType, 3 > >::FromNormalized(), vctQuaternionRotation3Base< vctFixedSizeVector< double, 4 > >::FromNormalized(), and vctMatrixRotation3Base< vctFixedSizeMatrix< double, 3, 3, _rowMajor > >::FromNormalized().
| bool vctAxisAngleRotation3< _elementType >::IsNormalized | ( | value_type | tolerance = TypeTraits::Tolerance() |
) | const [inline] |
Test if this rotation is normalized. This methods checks that the axis is normalized (with tolerance). Any angle is considered valid.
| tolerance | Tolerance for the norm test. |
Definition at line 552 of file vctAxisAngleRotation3.h.
References vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType >::IsNormalized().
| bool vctAxisAngleRotation3< _elementType >::Equal | ( | const ThisType & | other | ) | const [inline] |
Return true if this rotation is exactly equal to the other rotation, without any tolerance error. Rotations may be effectively equal if one is elementwise equal to the other.
Definition at line 564 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), and vctAxisAngleRotation3< _elementType >::Axis().
| bool vctAxisAngleRotation3< _elementType >::operator== | ( | const ThisType & | other | ) | const [inline] |
Return true if this rotation is exactly equal to the other rotation, without any tolerance error. Rotations may be effectively equal if one is elementwise equal to the other.
Definition at line 568 of file vctAxisAngleRotation3.h.
| bool vctAxisAngleRotation3< _elementType >::AlmostEqual | ( | const ThisType & | other, | |
| value_type | tolerance = TypeTraits::Tolerance() | |||
| ) | const [inline] |
Return true if this rotation is effectively equal to the other rotation, up to the given tolerance. Rotations may be effectively equal if one is elementwise equal to the other.
The tolerance factor is used to compare each of the elements of the difference vector.
Definition at line 583 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), and vctAxisAngleRotation3< _elementType >::Axis().
| bool vctAxisAngleRotation3< _elementType >::AlmostEquivalent | ( | const ThisType & | other, | |
| value_type | tolerance = TypeTraits::Tolerance() | |||
| ) | const [inline] |
Return true if this rotation is effectively equavilent to the other rotation, up to the given tolerance. Rotation may be effectively equivalent if their axis are aligned and their angles are equal, modulus 2 PI (take into account the direction of the axis).
The tolerance factor is used to compare each of the elements of the difference vector.
Definition at line 603 of file vctAxisAngleRotation3.h.
References vctAxisAngleRotation3< _elementType >::Angle(), vctAxisAngleRotation3< _elementType >::Axis(), cmnPI, and vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType >::Normalized().
| void vctAxisAngleRotation3< _elementType >::ToStream | ( | std::ostream & | outputStream | ) | const [inline] |
Print the matrix in a human readable format
Definition at line 646 of file vctAxisAngleRotation3.h.
Referenced by operator<<().
| void vctAxisAngleRotation3< _elementType >::ToStreamRaw | ( | std::ostream & | outputStream, | |
| const char | delimiter = ' ', |
|||
| bool | headerOnly = false, |
|||
| const std::string & | headerPrefix = "" | |||
| ) | const [inline] |
Print in machine processable format
Definition at line 657 of file vctAxisAngleRotation3.h.
| void vctAxisAngleRotation3< _elementType >::SerializeRaw | ( | std::ostream & | outputStream | ) | const [inline] |
Binary serialization
Definition at line 669 of file vctAxisAngleRotation3.h.
References cmnSerializeRaw().
| void vctAxisAngleRotation3< _elementType >::DeSerializeRaw | ( | std::istream & | inputStream | ) | [inline] |
Binary deserialization
Definition at line 676 of file vctAxisAngleRotation3.h.
References cmnDeSerializeRaw().