SbRotation(3IV)

SbRotation - class for representing a rotation

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SbRotation - class for representing a rotation

INHERITS FROM
     SbRotation

SYNOPSIS
     #include <Inventor/SbLinear.h>

          Methods from class SbRotation:

                         SbRotation()
                         SbRotation(const SbVec3f &axis, float radians)
                         SbRotation(const float v[4])
                         SbRotation(float q0, float q1, float q2, float q3)
                         SbRotation(const SbMatrix &m)
                         SbRotation(const SbVec3f &rotateFrom, const SbVec3f
                              &rotateTo)
     const float *       getValue() const
     void                getValue(float &q0, float &q1, float &q2, float &q3)
                              const
     SbRotation &        setValue(float q0, float q1, float q2, float q3)
     void                getValue(SbVec3f &axis, float &radians) const
     void                getValue(SbMatrix &matrix) const
     SbRotation &        invert()
     SbRotation          inverse() const
     SbRotation &        setValue(const float q[4])
     SbRotation &        setValue(const SbMatrix &m)
     SbRotation &        setValue(const SbVec3f &axis, float radians)
     SbRotation &        setValue(const SbVec3f &rotateFrom, const SbVec3f
                              &rotateTo)
     SbRotation &        operator *=(const SbRotation &q)
     int                 operator ==(const SbRotation &q1, const SbRotation
                              &q2)
     int                 operator !=(const SbRotation &q1, const SbRotation
                              &q2)
     SbBool              equals(const SbRotation &r, float tolerance) const
     SbRotation          operator *(const SbRotation &q1, const SbRotation
                              &q2)
     void                multVec(const SbVec3f &src, SbVec3f &dst) const
     void                scaleAngle(float scaleFactor )
     static SbRotation   slerp(const SbRotation &rot0, const SbRotation &rot1,
                              float t)
     static SbRotation   identity()


DESCRIPTION
     Object that stores a rotation. There are several ways to specify a
     rotation: quaternion (4 floats), 4x4 rotation matrix, or axis and angle.
     All angles are in radians and all rotations are right-handed.

METHODS
                         SbRotation()
                         SbRotation(const SbVec3f &axis, float radians)
                         SbRotation(const float v[4])
                         SbRotation(float q0, float q1, float q2, float q3)
                         SbRotation(const SbMatrix &m)
                         SbRotation(const SbVec3f &rotateFrom, const SbVec3f
                              &rotateTo)
          Constructors for rotation. The axis/radians constructor creates a
          rotation of angle radians about the given axis. The constructors
          that take four floats create a quaternion from those floats
          (careful, this differs from the four numbers in an axis/radian
          definition). Matrix constructor requires a valid rotation matrix.
          The rotateFrom/To constructor defines rotation that rotates from one
          vector into another. The rotateFrom and rotateTo vectors are
          normalized by the constructor before calculating the rotation.

     const float *       getValue() const
          Returns pointer to array of 4 components defining quaternion.

     void                getValue(float &q0, float &q1, float &q2, float &q3)
                              const
          Returns 4 individual components of rotation quaternion.

     SbRotation &        setValue(float q0, float q1, float q2, float q3)
          Sets value of rotation from 4 individual components of a quaternion.

     void                getValue(SbVec3f &axis, float &radians) const
          Returns corresponding 3D rotation axis vector and angle in radians.

     void                getValue(SbMatrix &matrix) const
          Returns corresponding 4x4 rotation matrix.

     SbRotation &        invert()
          Changes a rotation to be its inverse.

     SbRotation          inverse() const
          Returns the inverse of a rotation.

     SbRotation &        setValue(const float q[4])
          Sets value of rotation from array of 4 components of a quaternion.

     SbRotation &        setValue(const SbMatrix &m)
          Sets value of rotation from a rotation matrix.

     SbRotation &        setValue(const SbVec3f &axis, float radians)
          Sets value of vector from 3D rotation axis vector and angle in
          radians.

     SbRotation &        setValue(const SbVec3f &rotateFrom, const SbVec3f
                              &rotateTo)
          Sets rotation to rotate one direction vector to another. The
          rotateFrom and rotateTo arguments are normalized before the rotation
          is calculated.

     SbRotation &        operator *=(const SbRotation &q)
          Multiplies by another rotation; results in product of rotations.

     int                 operator ==(const SbRotation &q1, const SbRotation
                              &q2)
     int                 operator !=(const SbRotation &q1, const SbRotation
                              &q2)
          Equality comparison operators.

     SbBool              equals(const SbRotation &r, float tolerance) const
          Equality comparison within given tolerance - the square of the
          length of the maximum distance between the two quaternion vectors.

     SbRotation          operator *(const SbRotation &q1, const SbRotation
                              &q2)
          Multiplication of two rotations; results in product of rotations.

     void                multVec(const SbVec3f &src, SbVec3f &dst) const
          Multiplies the given vector by the matrix of this rotation.

     void                scaleAngle(float scaleFactor )
          Keep the axis the same. Multiply the angle of rotation by the amount
          scaleFactor.

     static SbRotation   slerp(const SbRotation &rot0, const SbRotation &rot1,
                              float t)
          Spherical linear interpolation: as t goes from 0 to 1, returned
          value goes from rot0 to rot1.

     static SbRotation   identity()
          Returns a null rotation.


FILE FORMAT/DEFAULTS
     Rotation {
     }

NOTES
     Rotations are stored internally as quaternions.

SEE ALSO
     SbVec3f, SbMatrix