sbdprotation(3)
NAME
SbDPRotation - The SbDPRotation class represents a rotation in 3D
space.
SbDPRotation is used extensively throughout the Coin library.
SYNOPSIS
#include <Inventor/SbLinear.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) SbDPRotation & operator*= (const SbDPRotation &q) SbDPRotation & operator*= (const double s) SbBool equals (const SbDPRotation &r, const double tolerance) const void multVec (const SbVec3d &src, SbVec3d &dst) const void scaleAngle (const double scaleFactor) void print (FILE *fp) const Static Public Member Functions static SbDPRotation slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t) static SbDPRotation identity (void) Friends int operator== (const SbDPRotation &q1, const SbDPRotation &q2) int operator!= (const SbDPRotation &q1, const SbDPRotation &q2) SbDPRotation operator* (const SbDPRotation &q1, const SbDPRotation &q2)
Detailed Description
The SbDPRotation class represents a rotation in 3D space.
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-ofrotation 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().
- 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. - SbBool SbDPRotation::equals (const SbDPRotation & r, const 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 file stream. Only works in debug version of library, method does nothing in an optimized compile.
Friends And Related Function Documentation
- int operator== (const SbDPRotation & q1, const SbDPRotation & q2) [friend]
- Check if the two rotations are equal.
- See also:
equals().
- int operator!= (const SbDPRotation & q1, const SbDPRotation & q2) [friend]
- Check if the two rotations are unequal.
- See also:
equals().
- SbDPRotation operator* (const SbDPRotation & q1, const SbDPRotation & q2)
- [friend]
Multiplies the two rotations and returns the result. - Note that order is important when combining quaternions with the
multiplication operator.
Author
- Generated automatically by Doxygen for Coin from the source code.