SbDPRotation(3)

NAME
SbDPRotation - The SbDPRotation class represents a rotation in 3D space using double precision data.

SYNOPSIS

#include <Inventor/SbDPRotation.h>

  Public Member Functions
SbDPRotation (void)
SbDPRotation (const SbVec3d &axis, const double radians)
SbDPRotation (const double q[4])
SbDPRotation (const double q0, const double q1, const double q2, const double q3)
SbDPRotation (const SbDPMatrix &m)
SbDPRotation (const SbVec3d &rotateFrom, const SbVec3d &rotateTo)
const double * getValue (void) const
void getValue (double &q0, double &q1, double &q2, double &q3) const
SbDPRotation & setValue (const double q0, const double q1, const double q2, const double q3)
void getValue (SbVec3d &axis, double &radians) const
void getValue (SbDPMatrix &matrix) const
SbDPRotation & invert (void)
SbDPRotation inverse (void) const
SbDPRotation & setValue (const double q[4])
SbDPRotation & setValue (const SbDPMatrix &m)
SbDPRotation & setValue (const SbVec3d &axis, const double radians)
SbDPRotation & setValue (const SbVec3d &rotateFrom, const SbVec3d &rotateTo)
SbBool equals (const SbDPRotation &r, double tolerance) const
void multVec (const SbVec3d &src, SbVec3d &dst) const
void scaleAngle (const double scaleFactor)
void print (FILE *fp) const
SbDPRotation & operator*= (const SbDPRotation &q)
SbDPRotation & operator*= (const double s)

  Static Public Member Functions
static SbDPRotation slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t)
static SbDPRotation identity (void)

  Related Functions
(Note that these are not member functions.)
int operator== (const SbDPRotation &q1, const SbDPRotation &q2)
int operator!= (const SbDPRotation &q1, const SbDPRotation &q2)
SbDPRotation operator* (const SbDPRotation &q1, const SbDPRotation &q2)
SbDPRotation slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t)

Detailed Description

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.

See also
    SbDPMatrix

Constructor & Destructor Documentation

  SbDPRotation::SbDPRotation (void)
The default constructor just initializes a valid rotation. The actual value is unspecified, and you should not depend on it.

  SbDPRotation::SbDPRotation (const SbVec3d & axis, const double radians)
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.

  SbDPRotation::SbDPRotation (const double q0, const double q1, const double q2, const double q3)
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.

  SbDPRotation::SbDPRotation (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.

Member Function Documentation

  const double * SbDPRotation::getValue (void) const
Return pointer to an array with the rotation expressed as four quaternion values.

See also
    setValue().

  void SbDPRotation::getValue (double & q0, double & q1, double & q2, double & q3) const
Return the four quaternion components representing the rotation.

See also
    setValue().

  SbDPRotation & SbDPRotation::setValue (const double q0, const double q1, const double q2, const double q3)
Set the rotation.

See also
    getValue().

  void SbDPRotation::getValue (SbVec3d & axis, double & radians) const
Return the rotation in the form of an axis-of-rotation and a rotation angle.

See also
    setValue().

  void SbDPRotation::getValue (SbDPMatrix & matrix) const
Return this rotation in the form of a matrix.

See also
    setValue().

  SbDPRotation & SbDPRotation::invert (void)
Invert the rotation. Returns reference to self.

See also
    inverse()

  SbDPRotation SbDPRotation::inverse (void) const
Non-destructively inverses the rotation and returns the result.

See also
    invert()

  SbDPRotation & SbDPRotation::setValue (const double q[4])
Reset the rotation by the four quaternions in the array.

See also
    getValue().

  SbDPRotation & SbDPRotation::setValue (const SbDPMatrix & m)
Set the rotation from the components of the given matrix. Returns reference to self.

See also
    getValue().

  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.

See also
    getValue().

  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.

See also
    getValue().

  SbBool SbDPRotation::equals (const SbDPRotation & r, double tolerance) const
Check the internal quaternion representation vectors for equality within the given tolerance.

  void SbDPRotation::multVec (const SbVec3d & src, SbVec3d & dst) const
Rotate the src vector and put the result in dst.

  void SbDPRotation::scaleAngle (const double scaleFactor)
Scale the angle of rotation by scaleFactor.

  SbDPRotation slerp (const SbDPRotation & rot0, const SbDPRotation & rot1, double t) [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].

  SbDPRotation SbDPRotation::identity (void) [static]
Returns an identity rotation.

  void SbDPRotation::print (FILE * fp) const
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.

  SbDPRotation & SbDPRotation::operator*= (const SbDPRotation & q)
Multiplies the quaternions.

Note that order is important when combining quaternions with the multiplication operator.

  SbDPRotation & SbDPRotation::operator*= (const double s)
Multiplies components of quaternion with scalar value s. Returns reference to self.

Friends And Related Function Documentation

  int operator== (const SbDPRotation & q1, const SbDPRotation & q2) [related]
Check if the two rotations are equal.

See also
    equals().

  int operator!= (const SbDPRotation & q1, const SbDPRotation & q2) [related]
Check if the two rotations are not equal.

See also
    equals().

  SbDPRotation operator* (const SbDPRotation & q1, const SbDPRotation & q2) [related]
Multiplies the two rotations and returns the result.

Note that order is important when combining quaternions with the multiplication operator.

  SbDPRotation slerp (const SbDPRotation & rot0, const SbDPRotation & rot1, double t) [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].

Author

Generated automatically by Doxygen for Coin from the source code.