Defined in include/foundation/Px.h

template<class Type>
class PxVec3T

3 Element vector class.

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

Public Functions

inline PxVec3T()

default constructor leaves data uninitialized.

inline PxVec3T(PxZERO)

zero constructor.

inline explicit PxVec3T(Type a)

Assigns scalar parameter to all elements.

Useful to initialize to zero or one.


a[in] Value to assign to elements.

inline PxVec3T(Type nx, Type ny, Type nz)

Initializes from 3 scalar parameters.

  • nx[in] Value to initialize X component.

  • ny[in] Value to initialize Y component.

  • nz[in] Value to initialize Z component.

inline PxVec3T(const PxVec3T &v)

Copy ctor.

inline PxVec3T &operator=(const PxVec3T &p)

Assignment operator.

inline Type &operator[](unsigned int index)

element access

inline const Type &operator[](unsigned int index) const

element access

inline bool operator==(const PxVec3T &v) const

returns true if the two vectors are exactly equal.

inline bool operator!=(const PxVec3T &v) const

returns true if the two vectors are not exactly equal.

inline bool isZero() const

tests for exact zero vector

inline bool isFinite() const

returns true if all 3 elems of the vector are finite (not NAN or INF, etc.)

inline bool isNormalized() const

is normalized - used by API parameter validation

inline Type magnitudeSquared() const

returns the squared magnitude

Avoids calling PxSqrt()!

inline Type magnitude() const

returns the magnitude

inline PxVec3T operator-() const


inline PxVec3T operator+(const PxVec3T &v) const

vector addition

inline PxVec3T operator-(const PxVec3T &v) const

vector difference

inline PxVec3T operator*(Type f) const

scalar post-multiplication

inline PxVec3T operator/(Type f) const

scalar division

inline PxVec3T &operator+=(const PxVec3T &v)

vector addition

inline PxVec3T &operator-=(const PxVec3T &v)

vector difference

inline PxVec3T &operator*=(Type f)

scalar multiplication

inline PxVec3T &operator/=(Type f)

scalar division

inline Type dot(const PxVec3T &v) const

returns the scalar product of this and other.

inline PxVec3T cross(const PxVec3T &v) const

cross product

inline PxVec3T getNormalized() const

returns a unit vector

inline Type normalize()

normalizes the vector in place

inline Type 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.

inline Type normalizeFast()

normalizes the vector in place.

Asserts if vector magnitude is under PX_NORMALIZATION_EPSILON. returns vector magnitude.

inline PxVec3T multiply(const PxVec3T &a) const

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

inline PxVec3T minimum(const PxVec3T &v) const

element-wise minimum

inline Type minElement() const

returns MIN(x, y, z);

inline PxVec3T maximum(const PxVec3T &v) const

element-wise maximum

inline Type maxElement() const

returns MAX(x, y, z);

inline PxVec3T abs() const

returns absolute values of components;

Public Members

Type x
Type y
Type z