+#include <PxMat33.h>
+
+

Public Member Functions | |
| PX_CUDA_CALLABLE PX_FORCE_INLINE | PxMat33 () |
| Default constructor. | |
| PX_CUDA_CALLABLE PX_INLINE | PxMat33 (PxIDENTITY r) |
| identity constructor | |
| PX_CUDA_CALLABLE PX_INLINE | PxMat33 (PxZERO r) |
| zero constructor | |
| PX_CUDA_CALLABLE | PxMat33 (const PxVec3 &col0, const PxVec3 &col1, const PxVec3 &col2) |
| Construct from three base vectors. | |
| PX_CUDA_CALLABLE PX_INLINE | PxMat33 (float r) |
| constructor from a scalar, which generates a multiple of the identity matrix | |
| PX_CUDA_CALLABLE PX_INLINE | PxMat33 (float values[]) |
| Construct from float[9]. | |
| PX_CUDA_CALLABLE PX_FORCE_INLINE | PxMat33 (const PxQuat &q) |
| Construct from a quaternion. | |
| PX_CUDA_CALLABLE PX_INLINE | PxMat33 (const PxMat33 &other) |
| Copy constructor. | |
| PX_CUDA_CALLABLE +PX_FORCE_INLINE PxMat33 & | operator= (const PxMat33 &other) |
| Assignment operator. | |
| PX_CUDA_CALLABLE PX_INLINE bool | operator== (const PxMat33 &m) const |
| returns true if the two matrices are exactly equal | |
| PX_CUDA_CALLABLE +PX_FORCE_INLINE const PxMat33 | getTranspose () const |
| Get transposed matrix. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxMat33 | getInverse () const |
| Get the real inverse. | |
| PX_CUDA_CALLABLE PX_INLINE float | getDeterminant () const |
| Get determinant. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxMat33 | operator- () const |
| Unary minus. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxMat33 | operator+ (const PxMat33 &other) const |
| Add. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxMat33 | operator- (const PxMat33 &other) const |
| Subtract. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxMat33 | operator* (float scalar) const |
| Scalar multiplication. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxVec3 | operator* (const PxVec3 &vec) const |
| Matrix vector multiplication (returns 'this->transform(vec)'). | |
| PX_CUDA_CALLABLE +PX_FORCE_INLINE const PxMat33 | operator* (const PxMat33 &other) const |
| Matrix multiplication. | |
| PX_CUDA_CALLABLE PX_INLINE +PxMat33 & | operator+= (const PxMat33 &other) |
| Equals-add. | |
| PX_CUDA_CALLABLE PX_INLINE +PxMat33 & | operator-= (const PxMat33 &other) |
| Equals-sub. | |
| PX_CUDA_CALLABLE PX_INLINE +PxMat33 & | operator*= (float scalar) |
| Equals scalar multiplication. | |
| PX_CUDA_CALLABLE PX_INLINE +PxMat33 & | operator*= (const PxMat33 &other) |
| Equals matrix multiplication. | |
| PX_DEPRECATED PX_CUDA_CALLABLE +PX_FORCE_INLINE float | operator() (unsigned int row, unsigned int col) const |
| Element access, mathematical way! | |
| PX_DEPRECATED PX_CUDA_CALLABLE +PX_FORCE_INLINE float & | operator() (unsigned int row, unsigned int col) |
| Element access, mathematical way! | |
| PX_CUDA_CALLABLE +PX_FORCE_INLINE const PxVec3 | transform (const PxVec3 &other) const |
| Transform vector by matrix, equal to v' = M*v. | |
| PX_CUDA_CALLABLE PX_INLINE +const PxVec3 | transformTranspose (const PxVec3 &other) const |
| Transform vector by matrix transpose, v' = M^t*v. | |
| PX_CUDA_CALLABLE +PX_FORCE_INLINE const float * | front () const |
| PX_DEPRECATED PX_CUDA_CALLABLE +PX_FORCE_INLINE PxVec3 & | operator[] (unsigned int num) |
| PX_DEPRECATED PX_CUDA_CALLABLE +PX_FORCE_INLINE const PxVec3 & | operator[] (unsigned int num) const |
Static Public Member Functions | |
| PX_CUDA_CALLABLE static +PX_INLINE const PxMat33 | createDiagonal (const PxVec3 &d) |
| Construct from diagonal, off-diagonals are zero. | |
Public Attributes | |
| PxVec3 | column0 |
| PxVec3 | column1 |
| PxVec3 | column2 |
Friends | |
| PxMat33 | operator* (float, const PxMat33 &) |
+Some clarifications, as there have been much confusion about matrix formats etc in the past.
+Short:
+Long: Given three base vectors a, b and c the matrix is stored as
+|a.x b.x c.x| |a.y b.y c.y| |a.z b.z c.z|
+Vectors are treated as columns, so the vector v is
+|x| |y| |z|
+And matrices are applied _before_ the vector (pre-multiplication) v' = M*v
+|x'| |a.x b.x c.x| |x| |a.x*x + b.x*y + c.x*z| |y'| = |a.y b.y c.y| * |y| = |a.y*x + b.y*y + c.y*z| |z'| |a.z b.z c.z| |z| |a.z*x + b.z*y + c.z*z|
+Physical storage and indexing: To be compatible with popular 3d rendering APIs (read D3d and OpenGL) the physical indexing is
+|0 3 6| |1 4 7| |2 5 8|
+index = column*3 + row
+which in C++ translates to M[column][row]
+The mathematical indexing is M_row,column and this is what is used for _-notation so _12 is 1st row, second column and operator(row, column)!
| PX_CUDA_CALLABLE PX_FORCE_INLINE PxMat33::PxMat33 | +( | ++ | ) | + [inline] |
+
+Default constructor. +
+ +
| PX_CUDA_CALLABLE PX_INLINE PxMat33::PxMat33 | +( | +PxIDENTITY | +r | +) | + [inline] |
+
| PX_CUDA_CALLABLE PX_INLINE PxMat33::PxMat33 | +( | +PxZERO | +r | +) | + [inline] |
+
| PX_CUDA_CALLABLE PxMat33::PxMat33 | +( | +const PxVec3 & | +col0, | +|
| + | + | const PxVec3 & | +col1, | +|
| + | + | const PxVec3 & | +col2 | + |
| + | ) | + [inline] |
+
+Construct from three base vectors. +
+ +
| PX_CUDA_CALLABLE PX_INLINE PxMat33::PxMat33 | +( | +float | +r | +) | + [inline, explicit] |
+
+constructor from a scalar, which generates a multiple of the identity matrix +
+ +
| PX_CUDA_CALLABLE PX_INLINE PxMat33::PxMat33 | +( | +float | +values[] | +) | + [inline, explicit] |
+
+Construct from float[9]. +
+ +
| PX_CUDA_CALLABLE PX_FORCE_INLINE PxMat33::PxMat33 | +( | +const PxQuat & | +q | +) | + [inline, explicit] |
+
| PX_CUDA_CALLABLE PX_INLINE PxMat33::PxMat33 | +( | +const PxMat33 & | +other | +) | + [inline] |
+
+Copy constructor. +
+ +
+
| PX_CUDA_CALLABLE static PX_INLINE const PxMat33 PxMat33::createDiagonal | +( | +const PxVec3 & | +d | +) | + [inline, static] |
+
+Construct from diagonal, off-diagonals are zero. +
+ +
References PxVec3::x, PxVec3::y, and PxVec3::z.
+ +Referenced by PxMassProperties::PxMassProperties().
+ +| PX_CUDA_CALLABLE PX_FORCE_INLINE const float* PxMat33::front | +( | ++ | ) | + const [inline] |
+
+ +
| PX_CUDA_CALLABLE PX_INLINE float PxMat33::getDeterminant | +( | ++ | ) | + const [inline] |
+
+Get determinant. +
+ +
| PX_CUDA_CALLABLE PX_INLINE const PxMat33 PxMat33::getInverse | +( | ++ | ) | + const [inline] |
+
| PX_CUDA_CALLABLE PX_FORCE_INLINE const PxMat33 PxMat33::getTranspose | +( | ++ | ) | + const [inline] |
+
+Get transposed matrix. +
+ +
Referenced by PxMassProperties::rotateInertia(), and PxMeshScale::toMat33().
+ +| PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE float& PxMat33::operator() | +( | +unsigned int | +row, | +|
| + | + | unsigned int | +col | + |
| + | ) | + [inline] |
+
+Element access, mathematical way! +
+ +
| PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE float PxMat33::operator() | +( | +unsigned int | +row, | +|
| + | + | unsigned int | +col | + |
| + | ) | + const [inline] |
+
+Element access, mathematical way! +
+ +
| PX_CUDA_CALLABLE PX_INLINE const PxVec3 PxMat33::operator* | +( | +const PxVec3 & | +vec | +) | + const [inline] |
+
+Matrix vector multiplication (returns 'this->transform(vec)'). +
+ +
| PX_CUDA_CALLABLE PX_INLINE const PxMat33 PxMat33::operator* | +( | +float | +scalar | +) | + const [inline] |
+
+Scalar multiplication. +
+ +
| PX_CUDA_CALLABLE PX_INLINE PxMat33& PxMat33::operator*= | +( | +const PxMat33 & | +other | +) | + [inline] |
+
+Equals matrix multiplication. +
+ +
| PX_CUDA_CALLABLE PX_INLINE PxMat33& PxMat33::operator*= | +( | +float | +scalar | +) | + [inline] |
+
+Equals scalar multiplication. +
+ +
| PX_CUDA_CALLABLE PX_INLINE const PxMat33 PxMat33::operator- | +( | ++ | ) | + const [inline] |
+
+Unary minus. +
+ +
| PX_CUDA_CALLABLE PX_INLINE bool PxMat33::operator== | +( | +const PxMat33 & | +m | +) | + const [inline] |
+
| PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE const PxVec3& PxMat33::operator[] | +( | +unsigned int | +num | +) | + const [inline] |
+
+ +
| PX_DEPRECATED PX_CUDA_CALLABLE PX_FORCE_INLINE PxVec3& PxMat33::operator[] | +( | +unsigned int | +num | +) | + [inline] |
+
+ +
| PX_CUDA_CALLABLE PX_INLINE const PxVec3 PxMat33::transformTranspose | +( | +const PxVec3 & | +other | +) | + const [inline] |
+
+Transform vector by matrix transpose, v' = M^t*v. +
+ +
+
+ +
+
| PxVec3 PxMat33::column0 | +
+ +
Referenced by PxBounds3::basisExtent(), getInverse(), PxMassProperties::getMassSpaceInertia(), operator*(), operator+(), operator+=(), operator-(), operator-=(), operator=(), operator==(), PxQuat::PxQuat(), PxMassProperties::rotateInertia(), PxMassProperties::scaleInertia(), PxMassProperties::sum(), PxMeshScale::toMat33(), and PxMassProperties::translateInertia().
+ +| PxVec3 PxMat33::column1 | +
+ +
Referenced by PxBounds3::basisExtent(), getInverse(), PxMassProperties::getMassSpaceInertia(), operator*(), operator+(), operator+=(), operator-(), operator-=(), operator=(), operator==(), PxQuat::PxQuat(), PxMassProperties::rotateInertia(), PxMassProperties::scaleInertia(), PxMassProperties::sum(), PxMeshScale::toMat33(), and PxMassProperties::translateInertia().
+ +| PxVec3 PxMat33::column2 | +
+ +
Referenced by PxBounds3::basisExtent(), getInverse(), PxMassProperties::getMassSpaceInertia(), operator*(), operator+(), operator+=(), operator-(), operator-=(), operator=(), operator==(), PxQuat::PxQuat(), PxMassProperties::rotateInertia(), PxMassProperties::scaleInertia(), PxMassProperties::sum(), PxMeshScale::toMat33(), and PxMassProperties::translateInertia().
+ ++