Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
PxQuat Class Reference

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. More...
 
PX_CUDA_CALLABLE PX_INLINE PxQuat (PxIDENTITY r)
 identity constructor More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat (PxReal r)
 Constructor from a scalar: sets the real part w to the scalar value, and the imaginary parts (x,y,z) to zero. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat (PxReal nx, PxReal ny, PxReal nz, PxReal nw)
 Constructor. Take note of the order of the elements! More...
 
PX_CUDA_CALLABLE PX_INLINE PxQuat (PxReal angleRadians, const PxVec3 &unitAxis)
 Creates from angle-axis representation. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat (const PxQuat &v)
 Copy ctor. More...
 
PX_CUDA_CALLABLE PX_INLINE PxQuat (const PxMat33 &m)
 Creates from orientation matrix. More...
 
PX_CUDA_CALLABLE bool isFinite () const
 returns true if all elements are finite (not NAN or INF, etc.) More...
 
PX_CUDA_CALLABLE bool isUnit () const
 returns true if finite and magnitude is close to unit More...
 
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 More...
 
PX_CUDA_CALLABLE PX_INLINE bool operator== (const PxQuat &q) const
 returns true if the two quaternions are exactly equal More...
 
PX_CUDA_CALLABLE PX_INLINE void toRadiansAndUnitAxis (PxReal &angle, PxVec3 &axis) const
 converts this quaternion to angle-axis representation More...
 
PX_CUDA_CALLABLE PX_INLINE PxReal getAngle () const
 Gets the angle between this quat and the identity quaternion. More...
 
PX_CUDA_CALLABLE PX_INLINE PxReal getAngle (const PxQuat &q) const
 Gets the angle between this quat and the argument. More...
 
PX_CUDA_CALLABLE
PX_FORCE_INLINE PxReal 
magnitudeSquared () const
 This is the squared 4D vector length, should be 1 for unit quaternions. More...
 
PX_CUDA_CALLABLE
PX_FORCE_INLINE PxReal 
dot (const PxQuat &v) const
 returns the scalar product of this and other. More...
 
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. More...
 
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. More...
 
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_DEPRECATED
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_INLINE PxQuat::PxQuat ( PxIDENTITY  r)
inline

identity constructor

References PX_UNUSED().

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat::PxQuat ( PxReal  r)
inlineexplicit

Constructor from a scalar: sets the real part w to the scalar value, and the imaginary parts (x,y,z) to zero.

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_INLINE PxQuat::PxQuat ( PxReal  angleRadians,
const PxVec3 unitAxis 
)
inline

Creates from angle-axis representation.

Axis must be normalized!

Angle is in radians!

Unit: Radians

References PxVec3::magnitude(), PX_ASSERT, PxAbs(), PxCos(), PxSin(), PxVec3::x, PxVec3::y, and PxVec3::z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat::PxQuat ( const PxQuat v)
inline

Copy ctor.

Member Function Documentation

static PX_DEPRECATED PX_CUDA_CALLABLE PX_INLINE PxQuat PxQuat::createIdentity ( )
inlinestatic
Deprecated:
use PxQuat(PxIdentity)

References PxIdentity.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxReal PxQuat::dot ( const PxQuat v) const
inline

returns the scalar product of this and other.

References w, x, y, and z.

PX_CUDA_CALLABLE PX_INLINE PxReal PxQuat::getAngle ( ) const
inline

Gets the angle between this quat and the identity quaternion.

Unit: Radians

References PxAcos().

PX_CUDA_CALLABLE PX_INLINE PxReal PxQuat::getAngle ( const PxQuat q) const
inline

Gets the angle between this quat and the argument.

Unit: Radians

References PxAcos().

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

returns true if all elements are finite (not NAN or INF, etc.)

References PxIsFinite().

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 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_INLINE PxQuat PxQuat::operator* ( const PxQuat q) const
inline

quaternion multiplication

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat PxQuat::operator* ( PxReal  r) const
inline
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat& PxQuat::operator*= ( const PxQuat q)
inline

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat& PxQuat::operator*= ( const PxReal  s)
inline
PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat PxQuat::operator+ ( const PxQuat q) const
inline

quaternion addition

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat& PxQuat::operator+= ( const PxQuat q)
inline

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat PxQuat::operator- ( ) const
inline

quaternion subtraction

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat PxQuat::operator- ( const PxQuat q) const
inline

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat& PxQuat::operator-= ( const PxQuat q)
inline

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE PxQuat& PxQuat::operator= ( const PxQuat p)
inline

Assignment operator.

References w, x, y, and z.

PX_CUDA_CALLABLE PX_INLINE bool PxQuat::operator== ( const PxQuat q) const
inline

returns true if the two quaternions are exactly equal

References w, x, y, and z.

PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 PxQuat::rotate ( const PxVec3 v) const
inline

rotates passed vec by this (assumed unitary)

References PxVec3::x, PxVec3::y, and PxVec3::z.

Referenced by PxTransform::transformInv().

PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3 PxQuat::rotateInv ( const PxVec3 v) const
inline

inverse rotates passed vec by this (assumed unitary)

References PxVec3::x, PxVec3::y, and PxVec3::z.

PX_CUDA_CALLABLE PX_INLINE void PxQuat::toRadiansAndUnitAxis ( PxReal angle,
PxVec3 axis 
) const
inline

converts this quaternion to angle-axis representation

References PxAbs(), PxAtan2(), PxPi, and PxRecipSqrt().

Member Data Documentation

PxReal PxQuat::w
PxReal PxQuat::x
PxReal PxQuat::y
PxReal PxQuat::z

The documentation for this class was generated from the following files:


Copyright © 2008-2015 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com