 Related help topics:
 Related help topics: #include <MEulerRotation.h>
Euler Rotation Math.
This class provides methods for working with euler angle rotations. Euler angles are described by rotations in radians around the x, y, and z axes, and the order in which those rotations occur.
 Examples:
 Examples: | Public Types | |
| enum | RotationOrder { kXYZ, kYZX, kZXY, kXZY, kYXZ, kZYX } | 
| Valid rotaton orders.  More... | |
| Public Member Functions | |
| MEulerRotation () | |
| The default class constructor.  More... | |
| MEulerRotation (const MEulerRotation &src) | |
| The copy constructor.  More... | |
| MEulerRotation (const MVector &v, RotationOrder ord=kXYZ) | |
| Class constructor.  More... | |
| MEulerRotation (double xx, double yy, double zz, RotationOrder ord=kXYZ) | |
| Class constructor.  More... | |
| ~MEulerRotation () | |
| Class destructor. | |
| MEulerRotation & | operator= (const MEulerRotation &src) | 
| The assignment operator.  More... | |
| MEulerRotation & | operator= (const MQuaternion &q) | 
| The assignment operator.  More... | |
| MEulerRotation & | operator= (const MMatrix &m) | 
| Convert the given 4X4 homogeneous rotation matrix to a euler rotation.  More... | |
| MEulerRotation & | operator= (const MVector &v) | 
| The assignment operator.  More... | |
| MEulerRotation & | setValue (const MVector &v, RotationOrder ord=kXYZ) | 
| Sets the euler rotation to the values contained in the vector and with the specified rotation order.  More... | |
| MEulerRotation & | setValue (double xx, double yy, double zz, RotationOrder ord=kXYZ) | 
| Sets the euler rotation to the x, y, and z rotation components with the specified rotation order.  More... | |
| MQuaternion | asQuaternion () const | 
| Converts an euler rotation to a quaternion.  More... | |
| MMatrix | asMatrix () const | 
| Converts an euler rotation to a rotation matrix.  More... | |
| MVector | asVector () const | 
| Converts an euler rotation to a vector.  More... | |
| double | operator[] (unsigned int i) const | 
| The index operator.  More... | |
| MEulerRotation | operator+ (const MEulerRotation &other) const | 
| The euler rotation addition operator.  More... | |
| MEulerRotation & | operator+= (const MEulerRotation &other) | 
| The in place euler rotation addition operator.  More... | |
| MEulerRotation | operator- (const MEulerRotation &other) const | 
| The euler rotation subtraction operator.  More... | |
| MEulerRotation & | operator-= (const MEulerRotation &other) | 
| The in place euler rotation subtraction operator.  More... | |
| MEulerRotation | operator- () const | 
| The unary minus operator.  More... | |
| MEulerRotation | operator* (const MEulerRotation &other) const | 
| The euler rotation multiplication operator.  More... | |
| MEulerRotation | operator* (const MQuaternion &other) const | 
| This quaternion multiplication operator.  More... | |
| MEulerRotation | operator* (double other) const | 
| This scalar multiplication operator.  More... | |
| MEulerRotation & | operator*= (const MEulerRotation &other) | 
| The in place euler rotation multiplication operator.  More... | |
| MEulerRotation & | operator*= (const MQuaternion &other) | 
| The in place quaternion multiplication operator.  More... | |
| MEulerRotation & | operator*= (double other) | 
| The in place scalar multiplication operator.  More... | |
| bool | operator== (const MEulerRotation &other) const | 
| The euler rotation equality operator.  More... | |
| bool | operator!= (const MEulerRotation &other) const | 
| The euler rotation inequality operator.  More... | |
| bool | isEquivalent (const MEulerRotation &other, double tolerance=kEulerRotationEpsilon) const | 
| This method returns true if this euler rotation is equivalent, within some given tolerance, to the other euler rotation.  More... | |
| bool | isZero (double tolerance=kEulerRotationEpsilon) const | 
| This method returns true if this euler rotation is zero, within some given tolerance.  More... | |
| MEulerRotation & | incrementalRotateBy (const MVector &axis, double angle) | 
| Perform an incremental rotation by the specified axis and angle.  More... | |
| MEulerRotation | inverse () const | 
| Returns the inverse of this euler rotation.  More... | |
| MEulerRotation & | invertIt () | 
| Performs an in place inversion of this euler rotation.  More... | |
| MEulerRotation | reorder (RotationOrder ord) const | 
| Returns the reordering of this euler rotation, such that the euler rotation will have the specified rotation order.  More... | |
| MEulerRotation & | reorderIt (RotationOrder ord) | 
| Performs an in place reordering of this euler rotation, such that the euler rotation will have the specified rotation order.  More... | |
| MEulerRotation | bound () const | 
| Returns the result of bounding this rotation to be within +/- PI.  More... | |
| MEulerRotation & | boundIt (const MEulerRotation &src) | 
| Sets this euler rotation to be the input rotation that has been bound to be within +/- PI.  More... | |
| MEulerRotation & | boundIt () | 
| Bounds this rotation to be within +/- PI.  More... | |
| MEulerRotation | alternateSolution () const | 
| Returns an alternate solution to this rotation.  More... | |
| MEulerRotation & | setToAlternateSolution (const MEulerRotation &src) | 
| Sets this euler rotation to an alternate solution of the input rotation.  More... | |
| MEulerRotation & | setToAlternateSolution () | 
| Sets this euler rotation to an alternate solution of this rotation.  More... | |
| MEulerRotation | closestSolution (const MEulerRotation &dst) const | 
| Returns the euler rotation that is the closest solution to the "dst" euler rotation.  More... | |
| MEulerRotation & | setToClosestSolution (const MEulerRotation &src, const MEulerRotation &dst) | 
| Sets this euler rotation to the euler rotation that is the closest solution of the "src" euler rotation to the "dst" euler rotation.  More... | |
| MEulerRotation & | setToClosestSolution (const MEulerRotation &dst) | 
| Sets this euler rotation to the euler rotation that is the closest solution to the "dst" euler rotation.  More... | |
| MEulerRotation | closestCut (const MEulerRotation &dst) const | 
| Returns the closest cut of this rotation to "dst".  More... | |
| MEulerRotation & | setToClosestCut (const MEulerRotation &src, const MEulerRotation &dst) | 
| Sets this rotation to be the closest cut of "src" to "dst".  More... | |
| MEulerRotation & | setToClosestCut (const MEulerRotation &dst) | 
| Sets this rotation to be the closest cut to "dst".  More... | |
| double & | operator[] (unsigned int i) | 
| NO SCRIPT SUPPORT.  More... | |
| Static Public Member Functions | |
| static MEulerRotation | decompose (const MMatrix &matrix, RotationOrder ord) | 
| Decompose a rotation matrix into the desired euler angles with the specified order.  More... | |
| static MEulerRotation | bound (const MEulerRotation &src) | 
| NO SCRIPT SUPPORT.  More... | |
| static MEulerRotation | alternateSolution (const MEulerRotation &src) | 
| NO SCRIPT SUPPORT.  More... | |
| static MEulerRotation | closestSolution (const MEulerRotation &src, const MEulerRotation &dst) | 
| NO SCRIPT SUPPORT.  More... | |
| static MEulerRotation | closestCut (const MEulerRotation &src, const MEulerRotation &dst) | 
| NO SCRIPT SUPPORT.  More... | |
| Public Attributes | |
| double | x | 
| The x component of the euler rotation in radians. | |
| double | y | 
| The y component of the euler rotation in radians. | |
| double | z | 
| The z component of the euler rotation in radians. | |
| RotationOrder | order | 
| The rotation order of the euler rotation. | |
| Static Public Attributes | |
| static const MEulerRotation | identity | 
| The euler rotation identity. The rotation order is XYZ. | |
| Friends | |
| OPENMAYA_EXPORT MEulerRotation | operator* (double scale, const MEulerRotation &other) | 
| NO SCRIPT SUPPORT.  More... | |
| OPENMAYA_EXPORT std::ostream & | operator<< (std::ostream &os, const MEulerRotation &rotation) | 
| NO SCRIPT SUPPORT.  More... | |
| enum RotationOrder | 
| MEulerRotation | ( | ) | 
The default class constructor.
The rotation order is set to XYZ.
| MEulerRotation | ( | const MEulerRotation & | src | ) | 
The copy constructor.
Creates a new euler rotation and initializes it to the same values as the given euler rotation.
| [in] | src | the euler rotation to copy | 
| MEulerRotation | ( | const MVector & | v, | 
| MEulerRotation::RotationOrder | ord = kXYZ | ||
| ) | 
Class constructor.
Construct an euler rotation from a vector with the given rotation order.
| [in] | v | vector from which to set the x, y, and z rotation components | 
| [in] | ord | the rotation order; the default rotation order is XYZ | 
| MEulerRotation | ( | double | xx, | 
| double | yy, | ||
| double | zz, | ||
| MEulerRotation::RotationOrder | ord = kXYZ | ||
| ) | 
Class constructor.
Initializes the euler rotation with the explicit x, y, z, and rotation order values provided as arguments.
| [in] | xx | the x component of the euler rotation | 
| [in] | yy | the y component of the euler rotation | 
| [in] | zz | the z component of the euler rotation | 
| [in] | ord | the rotation order of the euler rotation; the default rotation order is XYZ | 
| MEulerRotation & operator= | ( | const MEulerRotation & | src | ) | 
The assignment operator.
| [in] | src | the source euler rotation | 
| MEulerRotation & operator= | ( | const MQuaternion & | q | ) | 
The assignment operator.
| [in] | q | the source quaternion | 
| MEulerRotation & operator= | ( | const MMatrix & | m | ) | 
Convert the given 4X4 homogeneous rotation matrix to a euler rotation.
| [in] | m | the matrix to be converted to a euler rotation | 
| MEulerRotation & operator= | ( | const MVector & | v | ) | 
The assignment operator.
| [in] | v | the source vector from which the x, y, and z rotation components are set | 
| MEulerRotation & setValue | ( | const MVector & | v, | 
| MEulerRotation::RotationOrder | ord = kXYZ | ||
| ) | 
Sets the euler rotation to the values contained in the vector and with the specified rotation order.
| [in] | v | vector from which to set the x, y, and z rotation components | 
| [in] | ord | the rotation order; the default rotation order is XYZ | 
| MEulerRotation & setValue | ( | double | xx, | 
| double | yy, | ||
| double | zz, | ||
| MEulerRotation::RotationOrder | ord = kXYZ | ||
| ) | 
Sets the euler rotation to the x, y, and z rotation components with the specified rotation order.
| [in] | xx | the x component of the rotation | 
| [in] | yy | the y component of the rotation | 
| [in] | zz | the z component of the rotation | 
| [in] | ord | the rotation order; the default rotation order is XYZ | 
| MQuaternion asQuaternion | ( | ) | const | 
Converts an euler rotation to a quaternion.
| MMatrix asMatrix | ( | ) | const | 
Converts an euler rotation to a rotation matrix.
| MVector asVector | ( | ) | const | 
Converts an euler rotation to a vector.
The rotation order component is dropped.
 Examples:
 Examples: | double operator[] | ( | unsigned int | i | ) | const | 
The index operator.
If its argument is 0 it will return the x component of the euler rotation. If its argument is 1 it will return the y component of the euler rotation. If its argument is 2 it will return the z component of the euler rotation.
| [in] | i | value indicating which component to return | 
| MEulerRotation operator+ | ( | const MEulerRotation & | other | ) | const | 
The euler rotation addition operator.
| [in] | other | the euler rotation to be added to this euler rotation | 
| MEulerRotation & operator+= | ( | const MEulerRotation & | other | ) | 
The in place euler rotation addition operator.
| [in] | other | the euler rotation to be added with this euler rotation | 
| MEulerRotation operator- | ( | const MEulerRotation & | other | ) | const | 
The euler rotation subtraction operator.
| [in] | other | the euler rotation to be subtracted from this euler rotation | 
| MEulerRotation & operator-= | ( | const MEulerRotation & | other | ) | 
The in place euler rotation subtraction operator.
| [in] | other | the euler rotation to be subtracted from this euler rotation | 
| MEulerRotation operator- | ( | ) | const | 
The unary minus operator.
Negates the value of each of the x, y, and z components of the euler rotation. The order remains the same.
| MEulerRotation operator* | ( | const MEulerRotation & | other | ) | const | 
The euler rotation multiplication operator.
| [in] | other | the euler rotation to be multiplied with this euler rotation | 
| MEulerRotation operator* | ( | const MQuaternion & | other | ) | const | 
This quaternion multiplication operator.
| [in] | other | the quaternion to be multiplied with this euler rotation | 
| MEulerRotation operator* | ( | double | other | ) | const | 
This scalar multiplication operator.
| [in] | other | the scalar value to be multiplied with this euler rotation | 
| MEulerRotation & operator*= | ( | const MEulerRotation & | other | ) | 
The in place euler rotation multiplication operator.
| [in] | other | the euler rotation to be multiplied with this euler rotation | 
| MEulerRotation & operator*= | ( | const MQuaternion & | other | ) | 
The in place quaternion multiplication operator.
| [in] | other | the quaternion to be multiplied with this euler rotation | 
| MEulerRotation & operator*= | ( | double | other | ) | 
The in place scalar multiplication operator.
| [in] | other | the double to be multiplied with this euler rotation | 
| bool operator== | ( | const MEulerRotation & | other | ) | const | 
The euler rotation equality operator.
| [in] | other | the euler rotation to be compared with this euler rotation | 
| bool operator!= | ( | const MEulerRotation & | other | ) | const | 
The euler rotation inequality operator.
| [in] | other | the euler rotation to be compared with this euler rotation | 
| bool isEquivalent | ( | const MEulerRotation & | other, | 
| double | tolerance = kEulerRotationEpsilon | ||
| ) | const | 
This method returns true if this euler rotation is equivalent, within some given tolerance, to the other euler rotation.
'tolerance' defaults to kEulerRotationEpsilon which is 1.0e-10
| [in] | other | the euler rotation to be compared with this euler rotation | 
| [in] | tolerance | the amount of variation allowed for equivalency | 
| bool isZero | ( | double | tolerance = kEulerRotationEpsilon | ) | const | 
This method returns true if this euler rotation is zero, within some given tolerance.
'tolerance' defaults to kEulerRotationEpsilon which is 1.0e-10
| [in] | tolerance | the amount of variation allowed for equivalency to zero | 
| MEulerRotation & incrementalRotateBy | ( | const MVector & | axis, | 
| double | angle | ||
| ) | 
Perform an incremental rotation by the specified axis and angle.
The rotation is broken down and performed in smaller steps so that the angles update properly.
| [in] | axis | the axis to rotate around | 
| [in] | angle | the angle by which to rotate around the axis | 
| MEulerRotation inverse | ( | ) | const | 
Returns the inverse of this euler rotation.
The rotation order will be reversed.
| MEulerRotation & invertIt | ( | ) | 
Performs an in place inversion of this euler rotation.
The rotation order will be reversed.
| MEulerRotation reorder | ( | MEulerRotation::RotationOrder | ord | ) | const | 
Returns the reordering of this euler rotation, such that the euler rotation will have the specified rotation order.
| [in] | ord | the new rotation order of the euler rotation | 
| MEulerRotation & reorderIt | ( | MEulerRotation::RotationOrder | ord | ) | 
Performs an in place reordering of this euler rotation, such that the euler rotation will have the specified rotation order.
| [in] | ord | the new rotation order of the euler rotation | 
| MEulerRotation bound | ( | ) | const | 
Returns the result of bounding this rotation to be within +/- PI.
Bounding a rotation to be within +/- PI is defined to be the result of offsetting the rotation by +/- 2nPI (term by term) such that the offset is within +/- PI.
| MEulerRotation & boundIt | ( | const MEulerRotation & | src | ) | 
Sets this euler rotation to be the input rotation that has been bound to be within +/- PI.
Bounding a rotation to be within +/- PI is defined to be the result of offsetting the rotation by +/- 2nPI (term by term) such that the offset is within +/- PI.
| [in] | src | the input rotation that will be bound | 
| MEulerRotation & boundIt | ( | ) | 
Bounds this rotation to be within +/- PI.
Bounding a rotation to be within +/- PI is defined to be the result of offsetting the rotation by +/- 2nPI (term by term) such that the offset is within +/- PI.
| MEulerRotation alternateSolution | ( | ) | const | 
Returns an alternate solution to this rotation.
The resulting rotation will be bound between +/- PI, and the rotation order will remain unchanged.
| MEulerRotation & setToAlternateSolution | ( | const MEulerRotation & | src | ) | 
Sets this euler rotation to an alternate solution of the input rotation.
The resulting rotation will be bound between +/- PI, and the rotation order will remain unchanged.
| [in] | src | the rotation to compute an alternate solution to | 
| MEulerRotation & setToAlternateSolution | ( | ) | 
Sets this euler rotation to an alternate solution of this rotation.
The resulting rotation will be bound between +/- PI, and the rotation order will remain unchanged.
| MEulerRotation closestSolution | ( | const MEulerRotation & | dst | ) | const | 
Returns the euler rotation that is the closest solution to the "dst" euler rotation.
| [in] | dst | the euler rotation to which the solution should be closest | 
| MEulerRotation & setToClosestSolution | ( | const MEulerRotation & | src, | 
| const MEulerRotation & | dst | ||
| ) | 
Sets this euler rotation to the euler rotation that is the closest solution of the "src" euler rotation to the "dst" euler rotation.
| [in] | src | the euler rotation whose closest solution will be calculated | 
| [in] | dst | the euler rotation to which the solution should be closest | 
| MEulerRotation & setToClosestSolution | ( | const MEulerRotation & | dst | ) | 
Sets this euler rotation to the euler rotation that is the closest solution to the "dst" euler rotation.
| [in] | dst | the euler rotation to which the solution should be closest | 
| MEulerRotation closestCut | ( | const MEulerRotation & | dst | ) | const | 
Returns the closest cut of this rotation to "dst".
The closest cut of rotation A to rotation B is defined to be the rotation that is +/- 2nPI to rotation A (term by term) and within +/- PI to rotation B.
| [in] | dst | the range of the closest cut | 
| MEulerRotation & setToClosestCut | ( | const MEulerRotation & | src, | 
| const MEulerRotation & | dst | ||
| ) | 
Sets this rotation to be the closest cut of "src" to "dst".
The closest cut of rotation A to rotation B is defined to be the rotation that is +/- 2nPI to rotation A (term by term) and within +/- PI to rotation B.
| [in] | src | the euler rotation whose terms will be offset by +/- 2nPI | 
| [in] | dst | the range of the closest cut | 
| MEulerRotation & setToClosestCut | ( | const MEulerRotation & | dst | ) | 
Sets this rotation to be the closest cut to "dst".
The closest cut of rotation A to rotation B is defined to be the rotation that is +/- 2nPI to rotation A (term by term) and within +/- PI to rotation B.
| [in] | dst | the range of the closest cut | 
| 
 | static | 
Decompose a rotation matrix into the desired euler angles with the specified order.
| [in] | matrix | the matrix that will be decomposed into an euler rotation with the specified order | 
| [in] | ord | the order which the euler rotation will have | 
| double & operator[] | ( | unsigned int | i | ) | 
NO SCRIPT SUPPORT.
The index operator.
If its argument is 0 it will return the x component of the euler rotation. If its argument is 1 it will return the y component of the euler rotation. If its argument is 2 it will return the z component of the euler rotation.
| [in] | i | value indicating which component to return | 
| 
 | static | 
NO SCRIPT SUPPORT.
Returns the euler rotation that bounds the input rotation to be within +/- PI.
Bounding a rotation to be within +/- PI is defined to be the result of offsetting the rotation by +/- 2nPI (term by term) such that the offset is within +/- PI.
| [in] | src | the input rotation | 
| 
 | static | 
NO SCRIPT SUPPORT.
Returns the euler rotation that is an alternate solution of the input rotation.
The resulting rotation will be bound between +/- PI, and the rotation order will remain unchanged.
| [in] | src | the rotation to compute an alternate solution to | 
| 
 | static | 
NO SCRIPT SUPPORT.
Returns the euler rotation that is the closest solution of the "src" euler rotation to the "dst" euler rotation.
| [in] | src | the euler rotation whose closest solution will be calculated | 
| [in] | dst | the euler rotation to which the solution should be closest | 
| 
 | static | 
NO SCRIPT SUPPORT.
Returns the euler rotation that is the closest cut of "src" to "dst".
The closest cut of rotation A to rotation B is defined to be the rotation that is +/- 2nPI to rotation A (term by term) and within +/- PI to rotation B.
| [in] | src | the euler rotation whose terms will be offset by +/- 2nPI | 
| [in] | dst | the range of the closest cut | 
| 
 | friend | 
NO SCRIPT SUPPORT.
| [in] | scale | the amount by which the euler rotation should be scaled | 
| [in] | other | the euler rotation to which the scale should be applied | 
| 
 | friend | 
NO SCRIPT SUPPORT.
The format used is [order: order, x: x, y: y, z: z], where x, y, and z are in degrees.
| [in] | os | the ostream to print to | 
| [in] | rotation | the euler rotation to be printed x |