Coin
4.0.3
Coin3D core library
|
The SbDPRotation class represents a rotation in 3D space using double precision data. More...
#include <Inventor/SbDPRotation.h>
Static Public Member Functions | |
static SbDPRotation | identity (void) |
static SbDPRotation | slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t) |
Related Symbols | |
(Note that these are not member symbols.) | |
int | operator!= (const SbDPRotation &q1, const SbDPRotation &q2) |
SbDPRotation | operator* (const SbDPRotation &q1, const SbDPRotation &q2) |
int | operator== (const SbDPRotation &q1, const SbDPRotation &q2) |
SbDPRotation | slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t) |
The SbDPRotation class represents a rotation in 3D space using double precision data.
SbDPRotation is used extensively throughout the Coin library.
An SbDPRotation is stored internally as a quaternion for speed and storage reasons, but inquiries can be done to get and set axis and angle values for convenience.
SbDPRotation::SbDPRotation | ( | void | ) |
The default constructor just initializes a valid rotation. The actual value is unspecified, and you should not depend on it.
Construct a new SbDPRotation object initialized with the given axis-of-rotation and rotation angle.
SbDPRotation::SbDPRotation | ( | const double | q[4] | ) |
Construct a new SbDPRotation object initialized with the given quaternion components.
The array must be ordered as follows:
q[0] = x, q[1] = y, q[2] = z and q[3] = w, where the quaternion is specified by q = w + xi + yj + zk.
Construct a new SbDPRotation object initialized with the given quaternion components.
SbDPRotation::SbDPRotation | ( | const SbDPMatrix & | m | ) |
Construct a new SbDPRotation object initialized with the given rotation matrix.
Construct a rotation which is the minimum rotation necessary to make vector rotateFrom point in the direction of vector rotateTo.
SbBool SbDPRotation::equals | ( | const SbDPRotation & | r, |
double | tolerance ) const |
Check the internal quaternion representation vectors for equality within the given tolerance.
void SbDPRotation::getValue | ( | double & | q0, |
double & | q1, | ||
double & | q2, | ||
double & | q3 ) const |
Return the four quaternion components representing the rotation.
void SbDPRotation::getValue | ( | SbDPMatrix & | matrix | ) | const |
Return this rotation in the form of a matrix.
Return the rotation in the form of an axis-of-rotation and a rotation angle.
Return pointer to an array with the rotation expressed as four quaternion values.
|
static |
Returns an identity rotation.
SbDPRotation SbDPRotation::inverse | ( | void | ) | const |
Non-destructively inverses the rotation and returns the result.
SbDPRotation & SbDPRotation::invert | ( | void | ) |
Invert the rotation. Returns reference to self.
Rotate the src vector and put the result in dst.
SbDPRotation & SbDPRotation::operator*= | ( | const double | s | ) |
Multiplies components of quaternion with scalar value s. Returns reference to self.
SbDPRotation & SbDPRotation::operator*= | ( | const SbDPRotation & | q | ) |
Multiplies the quaternions.
Note that order is important when combining quaternions with the multiplication operator.
Dump the state of this object to the fp file stream. Only works in debug version of library, method does nothing in an optimized build.
Scale the angle of rotation by scaleFactor.
SbDPRotation & SbDPRotation::setValue | ( | const double | q0, |
const double | q1, | ||
const double | q2, | ||
const double | q3 ) |
Set the rotation.
SbDPRotation & SbDPRotation::setValue | ( | const double | q[4] | ) |
Reset the rotation by the four quaternions in the array.
SbDPRotation & SbDPRotation::setValue | ( | const SbDPMatrix & | m | ) |
Set the rotation from the components of the given matrix. Returns reference to self.
SbDPRotation & SbDPRotation::setValue | ( | const SbVec3d & | axis, |
const double | radians ) |
Reset rotation with the given axis-of-rotation and rotation angle. Returns reference to self.
Make sure axis is not the null vector when calling this method.
SbDPRotation & SbDPRotation::setValue | ( | const SbVec3d & | rotateFrom, |
const SbVec3d & | rotateTo ) |
Construct a rotation which is the minimum rotation necessary to make vector rotateFrom point in the direction of vector rotateTo.
Returns reference to self.
|
static |
Interpolates along the shortest path between the two rotation positions (from rot0 to rot1).
Returns the SbDPRotation which will rotate rot0 the given part t of the spherical distance towards rot1, where t=0 will yield rot0 and t=1 will yield rot1.
t should be in the interval [0, 1].
|
related |
Check if the two rotations are not equal.
|
related |
Multiplies the two rotations and returns the result.
Note that order is important when combining quaternions with the multiplication operator.
|
related |
Check if the two rotations are equal.
|
related |
Interpolates along the shortest path between the two rotation positions (from rot0 to rot1).
Returns the SbDPRotation which will rotate rot0 the given part t of the spherical distance towards rot1, where t=0 will yield rot0 and t=1 will yield rot1.
t should be in the interval [0, 1].