SbDPRotation(3) Coin SbDPRotation(3) NAME SbDPRotation - The SbDPRotation class represents a rotation in 3D space using double precision data. SYNOPSIS #include 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 Symbols (Note that these are not member symbols.) 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 Symbol 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. Version 4.0.2 Tue Dec 26 2023 17:59:22 SbDPRotation(3)