Public Types | |
| typedef double | value_type |
Public Member Functions | |
| Quat () | |
| Quat (value_type x, value_type y, value_type z, value_type w) | |
| Quat (const Vec4f &v) | |
| Quat (const Vec4d &v) | |
| Quat (value_type angle, const Vec3f &axis) | |
| Quat (value_type angle, const Vec3d &axis) | |
| Quat (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3) | |
| Quat (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3) | |
| Quat & | operator= (const Quat &v) |
| bool | operator== (const Quat &v) const |
| bool | operator!= (const Quat &v) const |
| bool | operator< (const Quat &v) const |
| Vec4d | asVec4 () const |
| Vec3d | asVec3 () const |
| void | set (value_type x, value_type y, value_type z, value_type w) |
| void | set (const osg::Vec4f &v) |
| void | set (const osg::Vec4d &v) |
| void | set (const Matrixf &matrix) |
| void | set (const Matrixd &matrix) |
| void | get (Matrixf &matrix) const |
| void | get (Matrixd &matrix) const |
| value_type & | operator[] (int i) |
| value_type | operator[] (int i) const |
| value_type & | x () |
| value_type & | y () |
| value_type & | z () |
| value_type & | w () |
| value_type | x () const |
| value_type | y () const |
| value_type | z () const |
| value_type | w () const |
| bool | zeroRotation () const |
| return true if the Quat represents a zero rotation, and therefore can be ignored in computations. | |
| const Quat | operator * (value_type rhs) const |
| Multiply by scalar. | |
| Quat & | operator *= (value_type rhs) |
| Unary multiply by scalar. | |
| const Quat | operator * (const Quat &rhs) const |
| Binary multiply. | |
| Quat & | operator *= (const Quat &rhs) |
| Unary multiply. | |
| Quat | operator/ (value_type rhs) const |
| Divide by scalar. | |
| Quat & | operator/= (value_type rhs) |
| Unary divide by scalar. | |
| const Quat | operator/ (const Quat &denom) const |
| Binary divide. | |
| Quat & | operator/= (const Quat &denom) |
| Unary divide. | |
| const Quat | operator+ (const Quat &rhs) const |
| Binary addition. | |
| Quat & | operator+= (const Quat &rhs) |
| Unary addition. | |
| const Quat | operator- (const Quat &rhs) const |
| Binary subtraction. | |
| Quat & | operator-= (const Quat &rhs) |
| Unary subtraction. | |
| const Quat | operator- () const |
| Negation operator - returns the negative of the quaternion. | |
| value_type | length () const |
| Length of the quaternion = sqrt( vec . vec ). | |
| value_type | length2 () const |
| Length of the quaternion = vec . vec. | |
| Quat | conj () const |
| Conjugate. | |
| const Quat | inverse () const |
| Multiplicative inverse method: q^(-1) = q^*/(q.q^*). | |
| void | makeRotate (value_type angle, value_type x, value_type y, value_type z) |
| void | makeRotate (value_type angle, const Vec3f &vec) |
| void | makeRotate (value_type angle, const Vec3d &vec) |
| void | makeRotate (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3) |
| void | makeRotate (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3) |
| void | makeRotate (const Vec3f &vec1, const Vec3f &vec2) |
| Make a rotation Quat which will rotate vec1 to vec2. | |
| void | makeRotate (const Vec3d &vec1, const Vec3d &vec2) |
| Make a rotation Quat which will rotate vec1 to vec2. | |
| void | makeRotate_original (const Vec3d &vec1, const Vec3d &vec2) |
| void | getRotate (value_type &angle, value_type &x, value_type &y, value_type &z) const |
| Return the angle and vector components represented by the quaternion. | |
| void | getRotate (value_type &angle, Vec3f &vec) const |
| Return the angle and vector represented by the quaternion. | |
| void | getRotate (value_type &angle, Vec3d &vec) const |
| Return the angle and vector represented by the quaternion. | |
| void | slerp (value_type t, const Quat &from, const Quat &to) |
| Spherical Linear Interpolation. | |
| Vec3f | operator * (const Vec3f &v) const |
| Rotate a vector by this quaternion. | |
| Vec3d | operator * (const Vec3d &v) const |
| Rotate a vector by this quaternion. | |
Public Attributes | |
| value_type | _v [4] |
It can be used to represent an orientation in 3D space.
| typedef double osg::Quat::value_type |
| osg::Quat::Quat | ( | ) | [inline] |
| osg::Quat::Quat | ( | value_type | x, | |
| value_type | y, | |||
| value_type | z, | |||
| value_type | w | |||
| ) | [inline] |
| osg::Quat::Quat | ( | const Vec4f & | v | ) | [inline] |
| osg::Quat::Quat | ( | const Vec4d & | v | ) | [inline] |
| osg::Quat::Quat | ( | value_type | angle, | |
| const Vec3f & | axis | |||
| ) | [inline] |
| osg::Quat::Quat | ( | value_type | angle, | |
| const Vec3d & | axis | |||
| ) | [inline] |
| osg::Quat::Quat | ( | value_type | angle1, | |
| const Vec3f & | axis1, | |||
| value_type | angle2, | |||
| const Vec3f & | axis2, | |||
| value_type | angle3, | |||
| const Vec3f & | axis3 | |||
| ) | [inline] |
| osg::Quat::Quat | ( | value_type | angle1, | |
| const Vec3d & | axis1, | |||
| value_type | angle2, | |||
| const Vec3d & | axis2, | |||
| value_type | angle3, | |||
| const Vec3d & | axis3 | |||
| ) | [inline] |
| bool osg::Quat::operator== | ( | const Quat & | v | ) | const [inline] |
| bool osg::Quat::operator!= | ( | const Quat & | v | ) | const [inline] |
| bool osg::Quat::operator< | ( | const Quat & | v | ) | const [inline] |
| Vec4d osg::Quat::asVec4 | ( | ) | const [inline] |
| Vec3d osg::Quat::asVec3 | ( | ) | const [inline] |
| void osg::Quat::set | ( | value_type | x, | |
| value_type | y, | |||
| value_type | z, | |||
| value_type | w | |||
| ) | [inline] |
| void osg::Quat::set | ( | const osg::Vec4f & | v | ) | [inline] |
| void osg::Quat::set | ( | const osg::Vec4d & | v | ) | [inline] |
| void osg::Quat::set | ( | const Matrixf & | matrix | ) |
| void osg::Quat::set | ( | const Matrixd & | matrix | ) |
| void osg::Quat::get | ( | Matrixf & | matrix | ) | const |
| void osg::Quat::get | ( | Matrixd & | matrix | ) | const |
| value_type& osg::Quat::operator[] | ( | int | i | ) | [inline] |
| value_type osg::Quat::operator[] | ( | int | i | ) | const [inline] |
| value_type& osg::Quat::x | ( | ) | [inline] |
| value_type& osg::Quat::y | ( | ) | [inline] |
| value_type& osg::Quat::z | ( | ) | [inline] |
| value_type& osg::Quat::w | ( | ) | [inline] |
| value_type osg::Quat::x | ( | ) | const [inline] |
| value_type osg::Quat::y | ( | ) | const [inline] |
| value_type osg::Quat::z | ( | ) | const [inline] |
| value_type osg::Quat::w | ( | ) | const [inline] |
| bool osg::Quat::zeroRotation | ( | ) | const [inline] |
return true if the Quat represents a zero rotation, and therefore can be ignored in computations.
| const Quat osg::Quat::operator * | ( | value_type | rhs | ) | const [inline] |
Multiply by scalar.
| Quat& osg::Quat::operator *= | ( | value_type | rhs | ) | [inline] |
Unary multiply by scalar.
| Quat osg::Quat::operator/ | ( | value_type | rhs | ) | const [inline] |
Divide by scalar.
| Quat& osg::Quat::operator/= | ( | value_type | rhs | ) | [inline] |
Unary divide by scalar.
| const Quat osg::Quat::operator- | ( | ) | const [inline] |
Negation operator - returns the negative of the quaternion.
Basically just calls operator - () on the Vec4
| value_type osg::Quat::length | ( | ) | const [inline] |
Length of the quaternion = sqrt( vec . vec ).
| value_type osg::Quat::length2 | ( | ) | const [inline] |
Length of the quaternion = vec . vec.
| Quat osg::Quat::conj | ( | ) | const [inline] |
Conjugate.
| const Quat osg::Quat::inverse | ( | ) | const [inline] |
Multiplicative inverse method: q^(-1) = q^*/(q.q^*).
| void osg::Quat::makeRotate | ( | value_type | angle, | |
| value_type | x, | |||
| value_type | y, | |||
| value_type | z | |||
| ) |
| void osg::Quat::makeRotate | ( | value_type | angle, | |
| const Vec3f & | vec | |||
| ) |
| void osg::Quat::makeRotate | ( | value_type | angle, | |
| const Vec3d & | vec | |||
| ) |
| void osg::Quat::makeRotate | ( | value_type | angle1, | |
| const Vec3f & | axis1, | |||
| value_type | angle2, | |||
| const Vec3f & | axis2, | |||
| value_type | angle3, | |||
| const Vec3f & | axis3 | |||
| ) |
| void osg::Quat::makeRotate | ( | value_type | angle1, | |
| const Vec3d & | axis1, | |||
| value_type | angle2, | |||
| const Vec3d & | axis2, | |||
| value_type | angle3, | |||
| const Vec3d & | axis3 | |||
| ) |
Make a rotation Quat which will rotate vec1 to vec2.
Generally take a dot product to get the angle between these and then use a cross product to get the rotation axis Watch out for the two special cases when the vectors are co-incident or opposite in direction.
Make a rotation Quat which will rotate vec1 to vec2.
Generally take a dot product to get the angle between these and then use a cross product to get the rotation axis Watch out for the two special cases of when the vectors are co-incident or opposite in direction.
| void osg::Quat::getRotate | ( | value_type & | angle, | |
| value_type & | x, | |||
| value_type & | y, | |||
| value_type & | z | |||
| ) | const |
Return the angle and vector components represented by the quaternion.
| void osg::Quat::getRotate | ( | value_type & | angle, | |
| Vec3f & | vec | |||
| ) | const |
Return the angle and vector represented by the quaternion.
| void osg::Quat::getRotate | ( | value_type & | angle, | |
| Vec3d & | vec | |||
| ) | const |
Return the angle and vector represented by the quaternion.
| void osg::Quat::slerp | ( | value_type | t, | |
| const Quat & | from, | |||
| const Quat & | to | |||
| ) |
Spherical Linear Interpolation.
As t goes from 0 to 1, the Quat object goes from "from" to "to".