PxQuat Class Reference
[Foundation]
This is a quaternion class. For more information on quaternion mathematics consult a mathematics source on complex numbers.
More...
#include <PxQuat.h>
Public Member Functions | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxQuat () |
Default constructor, does not do any initialization. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxQuat (PxReal nx, PxReal ny, PxReal nz, PxReal nw) |
Constructor. Take note of the order of the elements! | |
PX_CUDA_CALLABLE PX_INLINE | PxQuat (PxReal angleRadians, const PxVec3 &unitAxis) |
Creates from angle-axis representation. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxQuat (const PxQuat &v) |
Copy ctor. | |
PX_CUDA_CALLABLE PX_INLINE | PxQuat (const PxMat33 &m) |
Creates from orientation matrix. | |
PX_CUDA_CALLABLE bool | isFinite () const |
returns true if all elements are finite (not NAN or INF, etc.) | |
PX_CUDA_CALLABLE bool | isUnit () const |
returns true if finite and magnitude is close to unit | |
PX_CUDA_CALLABLE bool | isSane () const |
returns true if finite and magnitude is reasonably close to unit to allow for some accumulation of error vs isValid | |
PX_CUDA_CALLABLE PX_INLINE void | toRadiansAndUnitAxis (PxReal &angle, PxVec3 &axis) const |
converts this quaternion to angle-axis representation | |
PX_CUDA_CALLABLE PX_INLINE PxReal | getAngle () const |
Gets the angle between this quat and the identity quaternion. | |
PX_CUDA_CALLABLE PX_INLINE PxReal | getAngle (const PxQuat &q) const |
Gets the angle between this quat and the argument. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | magnitudeSquared () const |
This is the squared 4D vector length, should be 1 for unit quaternions. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal | dot (const PxQuat &v) const |
returns the scalar product of this and other. | |
PX_CUDA_CALLABLE PX_INLINE PxQuat | getNormalized () const |
PX_CUDA_CALLABLE PX_INLINE float | magnitude () const |
PX_CUDA_CALLABLE PX_INLINE PxReal | normalize () |
maps to the closest unit quaternion. | |
PX_CUDA_CALLABLE PX_INLINE PxQuat | getConjugate () const |
PX_CUDA_CALLABLE PX_INLINE PxVec3 | getImaginaryPart () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | getBasisVector0 () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | getBasisVector1 () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | getBasisVector2 () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 | rotate (const PxVec3 &v) const |
PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 | rotateInv (const PxVec3 &v) const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat & | operator= (const PxQuat &p) |
Assignment operator. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat & | operator*= (const PxQuat &q) |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat & | operator+= (const PxQuat &q) |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat & | operator-= (const PxQuat &q) |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat & | operator*= (const PxReal s) |
PX_CUDA_CALLABLE PX_INLINE PxQuat | operator* (const PxQuat &q) const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat | operator+ (const PxQuat &q) const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat | operator- () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat | operator- (const PxQuat &q) const |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat | operator* (PxReal r) const |
Static Public Member Functions | |
static PX_CUDA_CALLABLE PX_INLINE PxQuat | createIdentity () |
Public Attributes | |
PxReal | x |
PxReal | y |
PxReal | z |
PxReal | w |
Detailed Description
This is a quaternion class. For more information on quaternion mathematics consult a mathematics source on complex numbers.Constructor & Destructor Documentation
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat::PxQuat | ( | ) | [inline] |
Default constructor, does not do any initialization.
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat::PxQuat | ( | PxReal | nx, | |
PxReal | ny, | |||
PxReal | nz, | |||
PxReal | nw | |||
) | [inline] |
Constructor. Take note of the order of the elements!
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat::PxQuat | ( | const PxQuat & | v | ) | [inline] |
Copy ctor.
Member Function Documentation
static PX_CUDA_CALLABLE PX_INLINE PxQuat PxQuat::createIdentity | ( | ) | [inline, static] |
Referenced by PxMeshScale::createIdentity().
PX_CUDA_CALLABLE PX_INLINE PxReal PxQuat::getAngle | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxQuat::getBasisVector0 | ( | ) | const [inline] |
brief computes rotation of x-axis
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxQuat::getBasisVector1 | ( | ) | const [inline] |
brief computes rotation of y-axis
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxQuat::getBasisVector2 | ( | ) | const [inline] |
brief computes rotation of z-axis
PX_CUDA_CALLABLE PX_INLINE PxQuat PxQuat::getConjugate | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_INLINE PxVec3 PxQuat::getImaginaryPart | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_INLINE PxQuat PxQuat::getNormalized | ( | ) | const [inline] |
PX_CUDA_CALLABLE bool PxQuat::isFinite | ( | ) | const [inline] |
PX_CUDA_CALLABLE bool PxQuat::isSane | ( | ) | const [inline] |
returns true if finite and magnitude is reasonably close to unit to allow for some accumulation of error vs isValid
References PxAbs().
Referenced by PxTransform::PxTransform().
PX_CUDA_CALLABLE bool PxQuat::isUnit | ( | ) | const [inline] |
returns true if finite and magnitude is close to unit
References PxAbs().
Referenced by PxTriangleMeshGeometry::isValid(), PxConvexMeshGeometry::isValid(), and PxMeshScale::PxMeshScale().
PX_CUDA_CALLABLE PX_INLINE float PxQuat::magnitude | ( | ) | const [inline] |
References PxSqrt().
PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal PxQuat::magnitudeSquared | ( | ) | const [inline] |
This is the squared 4D vector length, should be 1 for unit quaternions.
PX_CUDA_CALLABLE PX_INLINE PxReal PxQuat::normalize | ( | ) | [inline] |
maps to the closest unit quaternion.
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat PxQuat::operator- | ( | ) | const [inline] |
quaternion subtraction
rotates passed vec by this (assumed unitary)
Referenced by PxTransform::transformInv().
inverse rotates passed vec by this (assumed unitary)
PX_CUDA_CALLABLE PX_INLINE void PxQuat::toRadiansAndUnitAxis | ( | PxReal & | angle, | |
PxVec3 & | axis | |||
) | const [inline] |
converts this quaternion to angle-axis representation
References PxAtan2(), PxPi, and PxRecipSqrt().
Member Data Documentation
Referenced by dot(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator=(), PxMat33::PxMat33(), PxMat44::PxMat44(), and PxQuat().
the quaternion elements
Referenced by dot(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator=(), PxMat33::PxMat33(), PxMat44::PxMat44(), and PxQuat().
Referenced by dot(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator=(), PxMat33::PxMat33(), PxMat44::PxMat44(), and PxQuat().
Referenced by dot(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator=(), PxMat33::PxMat33(), PxMat44::PxMat44(), and PxQuat().
The documentation for this class was generated from the following files:
Copyright © 2008-2012 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com