Blender V2.61 - r43446
|
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatrix3x3, btVector3 and btTransform. More...
#include <btQuaternion.h>
Public Member Functions | |
btQuaternion () | |
No initialization constructor. | |
btQuaternion (const btScalar &x, const btScalar &y, const btScalar &z, const btScalar &w) | |
Constructor from scalars. | |
btQuaternion (const btVector3 &axis, const btScalar &angle) | |
Axis angle Constructor. | |
btQuaternion (const btScalar &yaw, const btScalar &pitch, const btScalar &roll) | |
Constructor from Euler angles. | |
void | setRotation (const btVector3 &axis, const btScalar &angle) |
Set the rotation using axis angle notation. | |
void | setEuler (const btScalar &yaw, const btScalar &pitch, const btScalar &roll) |
Set the quaternion using Euler angles. | |
void | setEulerZYX (const btScalar &yaw, const btScalar &pitch, const btScalar &roll) |
Set the quaternion using euler angles. | |
SIMD_FORCE_INLINE btQuaternion & | operator+= (const btQuaternion &q) |
Add two quaternions. | |
btQuaternion & | operator-= (const btQuaternion &q) |
Subtract out a quaternion. | |
btQuaternion & | operator*= (const btScalar &s) |
Scale this quaternion. | |
btQuaternion & | operator*= (const btQuaternion &q) |
Multiply this quaternion by q on the right. | |
btScalar | dot (const btQuaternion &q) const |
Return the dot product between this quaternion and another. | |
btScalar | length2 () const |
Return the length squared of the quaternion. | |
btScalar | length () const |
Return the length of the quaternion. | |
btQuaternion & | normalize () |
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1. | |
SIMD_FORCE_INLINE btQuaternion | operator* (const btScalar &s) const |
Return a scaled version of this quaternion. | |
btQuaternion | operator/ (const btScalar &s) const |
Return an inversely scaled versionof this quaternion. | |
btQuaternion & | operator/= (const btScalar &s) |
Inversely scale this quaternion. | |
btQuaternion | normalized () const |
Return a normalized version of this quaternion. | |
btScalar | angle (const btQuaternion &q) const |
Return the angle between this quaternion and the other. | |
btScalar | getAngle () const |
Return the angle of rotation represented by this quaternion. | |
btVector3 | getAxis () const |
Return the axis of the rotation represented by this quaternion. | |
btQuaternion | inverse () const |
Return the inverse of this quaternion. | |
SIMD_FORCE_INLINE btQuaternion | operator+ (const btQuaternion &q2) const |
Return the sum of this quaternion and the other. | |
SIMD_FORCE_INLINE btQuaternion | operator- (const btQuaternion &q2) const |
Return the difference between this quaternion and the other. | |
SIMD_FORCE_INLINE btQuaternion | operator- () const |
Return the negative of this quaternion This simply negates each element. | |
SIMD_FORCE_INLINE btQuaternion | farthest (const btQuaternion &qd) const |
SIMD_FORCE_INLINE btQuaternion | nearest (const btQuaternion &qd) const |
btQuaternion | slerp (const btQuaternion &q, const btScalar &t) const |
Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion. | |
SIMD_FORCE_INLINE const btScalar & | getW () const |
Static Public Member Functions | |
static const btQuaternion & | getIdentity () |
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatrix3x3, btVector3 and btTransform.
Definition at line 25 of file btQuaternion.h.
btQuaternion::btQuaternion | ( | ) | [inline] |
No initialization constructor.
Definition at line 28 of file btQuaternion.h.
Referenced by inverse(), operator*(), operator+(), operator-(), and slerp().
btQuaternion::btQuaternion | ( | const btScalar & | x, |
const btScalar & | y, | ||
const btScalar & | z, | ||
const btScalar & | w | ||
) | [inline] |
Constructor from scalars.
Definition at line 33 of file btQuaternion.h.
btQuaternion::btQuaternion | ( | const btVector3 & | axis, |
const btScalar & | angle | ||
) | [inline] |
Axis angle Constructor.
axis | The axis which the rotation is around |
angle | The magnitude of the rotation around the angle (Radians) |
Definition at line 39 of file btQuaternion.h.
References setRotation().
btQuaternion::btQuaternion | ( | const btScalar & | yaw, |
const btScalar & | pitch, | ||
const btScalar & | roll | ||
) | [inline] |
Constructor from Euler angles.
yaw | Angle around Y unless BT_EULER_DEFAULT_ZYX defined then Z |
pitch | Angle around X unless BT_EULER_DEFAULT_ZYX defined then Y |
roll | Angle around Z unless BT_EULER_DEFAULT_ZYX defined then X |
Definition at line 47 of file btQuaternion.h.
References setEuler(), and setEulerZYX().
btScalar btQuaternion::angle | ( | const btQuaternion & | q | ) | const [inline] |
btScalar btQuaternion::dot | ( | const btQuaternion & | q | ) | const [inline] |
Return the dot product between this quaternion and another.
q | The other quaternion |
Definition at line 143 of file btQuaternion.h.
Referenced by angle(), dot(), farthest(), length2(), nearest(), and slerp().
SIMD_FORCE_INLINE btQuaternion btQuaternion::farthest | ( | const btQuaternion & | qd | ) | const [inline] |
Definition at line 254 of file btQuaternion.h.
References KDL::diff(), dot(), and sum().
btScalar btQuaternion::getAngle | ( | ) | const [inline] |
Return the angle of rotation represented by this quaternion.
Definition at line 206 of file btQuaternion.h.
References btAcos().
Referenced by btConeTwistConstraint::calcAngleInfo2(), btTransformUtil::calculateDiffAxisAngle(), btTransformUtil::calculateDiffAxisAngleQuaternion(), btConeTwistConstraint::computeConeLimitInfo(), and btConeTwistConstraint::computeTwistLimitInfo().
btVector3 btQuaternion::getAxis | ( | ) | const [inline] |
Return the axis of the rotation represented by this quaternion.
Definition at line 213 of file btQuaternion.h.
References btPow(), btSqrt(), and SIMD_EPSILON.
static const btQuaternion& btQuaternion::getIdentity | ( | ) | [inline, static] |
Definition at line 306 of file btQuaternion.h.
SIMD_FORCE_INLINE const btScalar& btQuaternion::getW | ( | ) | const [inline] |
Definition at line 312 of file btQuaternion.h.
Referenced by plGetOrientation(), and plSetEuler().
btQuaternion btQuaternion::inverse | ( | ) | const [inline] |
Return the inverse of this quaternion.
Definition at line 223 of file btQuaternion.h.
References btQuaternion().
Referenced by btConeTwistConstraint::calcAngleInfo2(), btTransformUtil::calculateDiffAxisAngleQuaternion(), inverse(), quatRotate(), btConeTwistConstraint::setMotorTarget(), and btConeTwistConstraint::setMotorTargetInConstraintSpace().
btScalar btQuaternion::length | ( | ) | const [inline] |
Return the length of the quaternion.
Definition at line 155 of file btQuaternion.h.
References btSqrt(), and length2().
Referenced by length(), normalize(), and normalized().
btScalar btQuaternion::length2 | ( | ) | const [inline] |
Return the length squared of the quaternion.
Definition at line 149 of file btQuaternion.h.
References dot().
Referenced by angle(), length(), and btMatrix3x3::setRotation().
SIMD_FORCE_INLINE btQuaternion btQuaternion::nearest | ( | const btQuaternion & | qd | ) | const [inline] |
Definition at line 265 of file btQuaternion.h.
References KDL::diff(), dot(), and sum().
Referenced by btTransformUtil::calculateDiffAxisAngleQuaternion().
btQuaternion& btQuaternion::normalize | ( | ) | [inline] |
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
Definition at line 162 of file btQuaternion.h.
References length().
Referenced by btConeTwistConstraint::calcAngleInfo2(), btTransformUtil::calculateDiffAxisAngle(), btTransformUtil::integrateTransform(), btConeTwistConstraint::setMotorTargetInConstraintSpace(), and shortestArcQuatNormalize2().
btQuaternion btQuaternion::normalized | ( | ) | const [inline] |
Return a normalized version of this quaternion.
Definition at line 193 of file btQuaternion.h.
References length().
SIMD_FORCE_INLINE btQuaternion btQuaternion::operator* | ( | const btScalar & | s | ) | const [inline] |
Return a scaled version of this quaternion.
s | The scale factor |
Definition at line 170 of file btQuaternion.h.
References btQuaternion().
btQuaternion& btQuaternion::operator*= | ( | const btScalar & | s | ) | [inline] |
Scale this quaternion.
s | The scalar to scale by |
Definition at line 124 of file btQuaternion.h.
btQuaternion& btQuaternion::operator*= | ( | const btQuaternion & | q | ) | [inline] |
Multiply this quaternion by q on the right.
q | The other quaternion Equivilant to this = this * q |
Definition at line 133 of file btQuaternion.h.
SIMD_FORCE_INLINE btQuaternion btQuaternion::operator+ | ( | const btQuaternion & | q2 | ) | const [inline] |
Return the sum of this quaternion and the other.
q2 | The other quaternion |
Definition at line 231 of file btQuaternion.h.
References btQuaternion().
SIMD_FORCE_INLINE btQuaternion& btQuaternion::operator+= | ( | const btQuaternion & | q | ) | [inline] |
Add two quaternions.
q | The quaternion to add to this one |
Definition at line 108 of file btQuaternion.h.
SIMD_FORCE_INLINE btQuaternion btQuaternion::operator- | ( | const btQuaternion & | q2 | ) | const [inline] |
Return the difference between this quaternion and the other.
q2 | The other quaternion |
Definition at line 240 of file btQuaternion.h.
References btQuaternion().
SIMD_FORCE_INLINE btQuaternion btQuaternion::operator- | ( | ) | const [inline] |
Return the negative of this quaternion This simply negates each element.
Definition at line 248 of file btQuaternion.h.
References btQuaternion().
btQuaternion& btQuaternion::operator-= | ( | const btQuaternion & | q | ) | [inline] |
Subtract out a quaternion.
q | The quaternion to subtract from this one |
Definition at line 116 of file btQuaternion.h.
btQuaternion btQuaternion::operator/ | ( | const btScalar & | s | ) | const [inline] |
Return an inversely scaled versionof this quaternion.
s | The inverse scale factor |
Definition at line 178 of file btQuaternion.h.
References btAssert.
btQuaternion& btQuaternion::operator/= | ( | const btScalar & | s | ) | [inline] |
Inversely scale this quaternion.
s | The scale factor |
Definition at line 186 of file btQuaternion.h.
References btAssert.
void btQuaternion::setEuler | ( | const btScalar & | yaw, |
const btScalar & | pitch, | ||
const btScalar & | roll | ||
) | [inline] |
Set the quaternion using Euler angles.
yaw | Angle around Y |
pitch | Angle around X |
roll | Angle around Z |
Definition at line 70 of file btQuaternion.h.
References btCos(), and btSin().
Referenced by btQuaternion(), and plSetEuler().
void btQuaternion::setEulerZYX | ( | const btScalar & | yaw, |
const btScalar & | pitch, | ||
const btScalar & | roll | ||
) | [inline] |
Set the quaternion using euler angles.
yaw | Angle around Z |
pitch | Angle around Y |
roll | Angle around X |
Definition at line 90 of file btQuaternion.h.
References btCos(), and btSin().
Referenced by btQuaternion().
void btQuaternion::setRotation | ( | const btVector3 & | axis, |
const btScalar & | angle | ||
) | [inline] |
Set the rotation using axis angle notation.
axis | The axis around which to rotate |
angle | The magnitude of the rotation in Radians |
Definition at line 58 of file btQuaternion.h.
References btAssert, btCos(), btSin(), and simple_enum_gen::d.
Referenced by btQuaternion().
btQuaternion btQuaternion::slerp | ( | const btQuaternion & | q, |
const btScalar & | t | ||
) | const [inline] |
Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion.
q | The other quaternion to interpolate with |
t | The ratio between this and q to interpolate. If t = 0 the result is this, if t=1 the result is q. Slerp interpolates assuming constant velocity. |
Definition at line 280 of file btQuaternion.h.
References angle(), btQuaternion(), btSin(), simple_enum_gen::d, and dot().
Referenced by slerp().