#include <PxVec3.h>
Public Member Functions | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxVec3 () |
default constructor leaves data uninitialized. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxVec3 (PxZERO r) |
zero constructor. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxVec3 (float a) |
Assigns scalar parameter to all elements. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxVec3 (float nx, float ny, float nz) |
Initializes from 3 scalar parameters. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE | PxVec3 (const PxVec3 &v) |
Copy ctor. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 & | operator= (const PxVec3 &p) |
Assignment operator. | |
PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE float & | operator[] (unsigned int index) |
element access | |
PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE const float & | operator[] (unsigned int index) const |
element access | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | operator== (const PxVec3 &v) const |
returns true if the two vectors are exactly equal. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | operator!= (const PxVec3 &v) const |
returns true if the two vectors are not exactly equal. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | isZero () const |
tests for exact zero vector | |
PX_CUDA_CALLABLE PX_INLINE bool | isFinite () const |
returns true if all 3 elems of the vector are finite (not NAN or INF, etc.) | |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool | isNormalized () const |
is normalized - used by API parameter validation | |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | magnitudeSquared () const |
returns the squared magnitude | |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | magnitude () const |
returns the magnitude | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | operator- () const |
negation | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | operator+ (const PxVec3 &v) const |
vector addition | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | operator- (const PxVec3 &v) const |
vector difference | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | operator* (float f) const |
scalar post-multiplication | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | operator/ (float f) const |
scalar division | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 & | operator+= (const PxVec3 &v) |
vector addition | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 & | operator-= (const PxVec3 &v) |
vector difference | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 & | operator*= (float f) |
scalar multiplication | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 & | operator/= (float f) |
scalar division | |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | dot (const PxVec3 &v) const |
returns the scalar product of this and other. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | cross (const PxVec3 &v) const |
cross product | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | getNormalized () const |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | normalize () |
normalizes the vector in place | |
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. | |
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. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | multiply (const PxVec3 &a) const |
a[i] * b[i], for all i. | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | minimum (const PxVec3 &v) const |
element-wise minimum | |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | minElement () const |
returns MIN(x, y, z); | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | maximum (const PxVec3 &v) const |
element-wise maximum | |
PX_CUDA_CALLABLE PX_FORCE_INLINE float | maxElement () const |
returns MAX(x, y, z); | |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 | abs () const |
returns absolute values of components; | |
Public Attributes | |
float | x |
float | y |
float | z |
This is a 3-dimensional vector class with public data members.
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 | ( | ) | [inline] |
default constructor leaves data uninitialized.
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 | ( | PxZERO | r | ) | [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 | ( | float | a | ) | [inline, explicit] |
Assigns scalar parameter to all elements.
Useful to initialize to zero or one.
[in] | a | Value to assign to elements. |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 | ( | float | nx, | |
float | ny, | |||
float | nz | |||
) | [inline] |
Initializes from 3 scalar parameters.
[in] | nx | Value to initialize X component. |
[in] | ny | Value to initialize Y component. |
[in] | nz | Value to initialize Z component. |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3::PxVec3 | ( | const PxVec3 & | v | ) | [inline] |
Copy ctor.
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::abs | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::dot | ( | const PxVec3 & | v | ) | const [inline] |
returns the scalar product of this and other.
Referenced by PxPlane::distance(), PxPlane::PxPlane(), and PxMassProperties::scaleInertia().
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::getNormalized | ( | ) | const [inline] |
return a unit vector
References PxRecipSqrt().
PX_CUDA_CALLABLE PX_INLINE bool PxVec3::isFinite | ( | ) | const [inline] |
returns true if all 3 elems of the vector are finite (not NAN or INF, etc.)
References PxIsFinite().
Referenced by PxMassProperties::getMassSpaceInertia(), PxBounds3::isFinite(), PxTriangleMeshGeometry::isValid(), PxConvexMeshGeometry::isValid(), PxBoxGeometry::isValid(), PxMassProperties::rotateInertia(), PxMassProperties::scaleInertia(), PxMassProperties::sum(), PxMassProperties::translate(), and PxMassProperties::translateInertia().
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::isNormalized | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::isZero | ( | ) | const [inline] |
tests for exact zero vector
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::magnitude | ( | ) | const [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::magnitudeSquared | ( | ) | const [inline] |
returns the squared magnitude
Avoids calling PxSqrt()!
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::maxElement | ( | ) | const [inline] |
element-wise maximum
References PxMax(), x, y, and z.
Referenced by PxBounds3::boundsOfPoints(), and PxBounds3::include().
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::minElement | ( | ) | const [inline] |
element-wise minimum
References PxMin(), x, y, and z.
Referenced by PxBounds3::boundsOfPoints(), and PxBounds3::include().
a[i] * b[i], for all i.
Referenced by PxMassProperties::PxMassProperties(), and PxMassProperties::scaleInertia().
PX_CUDA_CALLABLE PX_FORCE_INLINE float PxVec3::normalize | ( | ) | [inline] |
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.
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.
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::operator!= | ( | const PxVec3 & | v | ) | const [inline] |
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator* | ( | float | f | ) | const [inline] |
scalar post-multiplication
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator*= | ( | float | f | ) | [inline] |
scalar multiplication
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator- | ( | ) | const [inline] |
negation
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3 PxVec3::operator/ | ( | float | f | ) | const [inline] |
scalar division
PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxVec3::operator/= | ( | float | f | ) | [inline] |
scalar division
PX_CUDA_CALLABLE PX_FORCE_INLINE bool PxVec3::operator== | ( | const PxVec3 & | v | ) | const [inline] |
PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE const float& PxVec3::operator[] | ( | unsigned int | index | ) | const [inline] |
PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE float& PxVec3::operator[] | ( | unsigned int | index | ) | [inline] |
float PxVec3::x |
Referenced by PxBounds3::basisExtent(), PxBounds3::contains(), PxMat33::createDiagonal(), cross(), PxExtendedVec3::cross(), dot(), PxExtendedVec3::dot(), PxBounds3::fattenFast(), PxMat33::getInverse(), PxBounds3::intersects(), PxBounds3::isEmpty(), PxBounds3::isInside(), PxBoxGeometry::isValid(), PxBounds3::isValid(), maximum(), minimum(), multiply(), operator!=(), operator*(), operator+(), operator+=(), PxExtendedVec3::operator+=(), operator-(), operator-=(), PxExtendedVec3::operator-=(), operator=(), operator==(), PxMassProperties::PxMassProperties(), PxQuat::PxQuat(), PxQuat::rotate(), PxQuat::rotateInv(), PxMassProperties::scaleInertia(), PxMat44::setPosition(), PxMat33::transform(), and PxMassProperties::translateInertia().
float PxVec3::y |
Referenced by PxBounds3::basisExtent(), PxBounds3::contains(), PxMat33::createDiagonal(), cross(), PxExtendedVec3::cross(), dot(), PxExtendedVec3::dot(), PxBounds3::fattenFast(), PxMat33::getInverse(), PxBounds3::intersects(), PxBounds3::isInside(), PxBoxGeometry::isValid(), PxBounds3::isValid(), maximum(), minimum(), multiply(), operator!=(), operator*(), operator+(), operator+=(), PxExtendedVec3::operator+=(), operator-(), operator-=(), PxExtendedVec3::operator-=(), operator=(), operator==(), PxMassProperties::PxMassProperties(), PxQuat::PxQuat(), PxQuat::rotate(), PxQuat::rotateInv(), PxMassProperties::scaleInertia(), PxMat44::setPosition(), PxMat33::transform(), and PxMassProperties::translateInertia().
float PxVec3::z |
Referenced by PxBounds3::basisExtent(), PxBounds3::contains(), PxMat33::createDiagonal(), cross(), PxExtendedVec3::cross(), dot(), PxExtendedVec3::dot(), PxBounds3::fattenFast(), PxMat33::getInverse(), PxBounds3::intersects(), PxMat44::inverseRT(), PxBounds3::isInside(), PxBoxGeometry::isValid(), PxBounds3::isValid(), maximum(), minimum(), multiply(), operator!=(), operator*(), operator+(), operator+=(), PxExtendedVec3::operator+=(), operator-(), operator-=(), PxExtendedVec3::operator-=(), operator=(), operator==(), PxMassProperties::PxMassProperties(), PxQuat::PxQuat(), PxQuat::rotate(), PxQuat::rotateInv(), PxMassProperties::scaleInertia(), PxMat44::setPosition(), PxMat33::transform(), and PxMassProperties::translateInertia().