PxVec3 Class Reference

3 Element vector class. More...

#include <PxVec3.h>

Public Member Functions

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 ()
 default constructor leaves data uninitialized. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 (PxZERO r)
 zero constructor. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 (float a)
 Assigns scalar parameter to all elements. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 (float nx, float ny, float nz)
 Initializes from 3 scalar parameters. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 (const PxVec3 &v)
 Copy ctor. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3operator= (const PxVec3 &p)
 Assignment operator. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float & operator[] (unsigned int index)
 element access More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE const float & operator[] (unsigned int index) const
 element access More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool operator== (const PxVec3 &v) const
 returns true if the two vectors are exactly equal. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool operator!= (const PxVec3 &v) const
 returns true if the two vectors are not exactly equal. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool isZero () const
 tests for exact zero vector More...
 
PX_CUDA_CALLABLE PX_INLINE bool isFinite () const
 returns true if all 3 elems of the vector are finite (not NAN or INF, etc.) More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE bool isNormalized () const
 is normalized - used by API parameter validation More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float magnitudeSquared () const
 returns the squared magnitude More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float magnitude () const
 returns the magnitude More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator- () const
 negation More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator+ (const PxVec3 &v) const
 vector addition More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator- (const PxVec3 &v) const
 vector difference More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator* (float f) const
 scalar post-multiplication More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 operator/ (float f) const
 scalar division More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3operator+= (const PxVec3 &v)
 vector addition More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3operator-= (const PxVec3 &v)
 vector difference More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3operator*= (float f)
 scalar multiplication More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3operator/= (float f)
 scalar division More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float dot (const PxVec3 &v) const
 returns the scalar product of this and other. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 cross (const PxVec3 &v) const
 cross product More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 getNormalized () const
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float normalize ()
 normalizes the vector in place More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float normalizeSafe ()
 normalizes the vector in place. Does nothing if vector magnitude is under PX_NORMALIZATION_EPSILON. Returns vector magnitude if >= PX_NORMALIZATION_EPSILON and 0.0f otherwise. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float normalizeFast ()
 normalizes the vector in place. Asserts if vector magnitude is under PX_NORMALIZATION_EPSILON. returns vector magnitude. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 multiply (const PxVec3 &a) const
 a[i] * b[i], for all i. More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 minimum (const PxVec3 &v) const
 element-wise minimum More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float minElement () const
 returns MIN(x, y, z); More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 maximum (const PxVec3 &v) const
 element-wise maximum More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE float maxElement () const
 returns MAX(x, y, z); More...
 
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 abs () const
 returns absolute values of components; More...
 

Public Attributes

float x
 
float y
 
float z
 

Detailed Description

3 Element vector class.

This is a 3-dimensional vector class with public data members.

Constructor & Destructor Documentation

◆ PxVec3() [1/5]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 ( )
inline

default constructor leaves data uninitialized.

◆ PxVec3() [2/5]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 ( PxZERO  r)
inline

zero constructor.

References PX_UNUSED().

◆ PxVec3() [3/5]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 ( float  a)
inlineexplicit

Assigns scalar parameter to all elements.

Useful to initialize to zero or one.

Parameters
[in]aValue to assign to elements.

◆ PxVec3() [4/5]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 ( float  nx,
float  ny,
float  nz 
)
inline

Initializes from 3 scalar parameters.

Parameters
[in]nxValue to initialize X component.
[in]nyValue to initialize Y component.
[in]nzValue to initialize Z component.

◆ PxVec3() [5/5]

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

Copy ctor.

Member Function Documentation

◆ abs()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::abs ( ) const
inline

returns absolute values of components;

References PxAbs().

Referenced by PxMeshScale::isValidForTriangleMesh().

◆ cross()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::cross ( const PxVec3 v) const
inline

cross product

References x, y, and z.

◆ dot()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::dot ( const PxVec3 v) const
inline

◆ getNormalized()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::getNormalized ( ) const
inline

return a unit vector

References PxRecipSqrt().

◆ isFinite()

◆ isNormalized()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::isNormalized ( ) const
inline

is normalized - used by API parameter validation

References physx::intrinsics::isFinite(), and PxAbs().

◆ isZero()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::isZero ( ) const
inline

tests for exact zero vector

◆ magnitude()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::magnitude ( ) const
inline

returns the magnitude

References PxSqrt().

Referenced by PxTriangle::area(), physx::Gu::ContactBuffer::contact(), and PxQuat::PxQuat().

◆ magnitudeSquared()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::magnitudeSquared ( ) const
inline

returns the squared magnitude

Avoids calling PxSqrt()!

◆ maxElement()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::maxElement ( ) const
inline

returns MAX(x, y, z);

References PxMax().

Referenced by PxMeshScale::isValidForTriangleMesh().

◆ maximum()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::maximum ( const PxVec3 v) const
inline

element-wise maximum

References PxMax(), x, y, and z.

Referenced by PxBounds3::boundsOfPoints(), and PxBounds3::include().

◆ minElement()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::minElement ( ) const
inline

returns MIN(x, y, z);

References PxMin().

Referenced by PxMeshScale::isValidForTriangleMesh().

◆ minimum()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::minimum ( const PxVec3 v) const
inline

element-wise minimum

References PxMin(), x, y, and z.

Referenced by PxBounds3::boundsOfPoints(), and PxBounds3::include().

◆ multiply()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::multiply ( const PxVec3 a) const
inline

a[i] * b[i], for all i.

References x, y, and z.

Referenced by PxMassProperties::PxMassProperties(), and PxMassProperties::scaleInertia().

◆ normalize()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::normalize ( )
inline

normalizes the vector in place

Referenced by PxTriangle::normal().

◆ normalizeFast()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::normalizeFast ( )
inline

normalizes the vector in place. Asserts if vector magnitude is under PX_NORMALIZATION_EPSILON. returns vector magnitude.

References PX_ASSERT, and PX_NORMALIZATION_EPSILON.

◆ normalizeSafe()

PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::normalizeSafe ( )
inline

normalizes the vector in place. Does nothing if vector magnitude is under PX_NORMALIZATION_EPSILON. Returns vector magnitude if >= PX_NORMALIZATION_EPSILON and 0.0f otherwise.

References PX_NORMALIZATION_EPSILON.

◆ operator!=()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::operator!= ( const PxVec3 v) const
inline

returns true if the two vectors are not exactly equal.

References x, y, and z.

◆ operator*()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator* ( float  f) const
inline

scalar post-multiplication

◆ operator*=()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator*= ( float  f)
inline

scalar multiplication

◆ operator+()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator+ ( const PxVec3 v) const
inline

vector addition

References x, y, and z.

◆ operator+=()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator+= ( const PxVec3 v)
inline

vector addition

References x, y, and z.

◆ operator-() [1/2]

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

negation

◆ operator-() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator- ( const PxVec3 v) const
inline

vector difference

References x, y, and z.

◆ operator-=()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator-= ( const PxVec3 v)
inline

vector difference

References x, y, and z.

◆ operator/()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator/ ( float  f) const
inline

scalar division

◆ operator/=()

PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator/= ( float  f)
inline

scalar division

◆ operator=()

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

Assignment operator.

References x, y, and z.

◆ operator==()

PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::operator== ( const PxVec3 v) const
inline

returns true if the two vectors are exactly equal.

References x, y, and z.

◆ operator[]() [1/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE float& PxVec3::operator[] ( unsigned int  index)
inline

element access

References PX_ASSERT.

◆ operator[]() [2/2]

PX_CUDA_CALLABLE PX_FORCE_INLINE const float& PxVec3::operator[] ( unsigned int  index) const
inline

element access

References PX_ASSERT.

Member Data Documentation

◆ x

◆ y

◆ z


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