Public Methods |
|
__forceinline | Matrix3x3 () |
| | Empty constructor.
|
|
__forceinline | Matrix3x3 (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) |
| | Constructor from 9 values.
|
|
__forceinline | Matrix3x3 (const Matrix3x3 &mat) |
| | Copy constructor.
|
|
__forceinline | ~Matrix3x3 () |
| | Destructor.
|
|
__forceinline Matrix3x3 & | Set (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) |
| | Assign values.
|
|
__forceinline Matrix3x3 & | SetScale (const Point &p) |
| | Sets the scale from a Point. The point is put on the diagonal.
|
|
__forceinline Matrix3x3 & | SetScale (float sx, float sy, float sz) |
| | Sets the scale from floats. Values are put on the diagonal.
|
|
__forceinline Matrix3x3 & | Scale (const Point &p) |
| | Scales from a Point. Each row is multiplied by a component.
|
|
__forceinline Matrix3x3 & | Scale (float sx, float sy, float sz) |
| | Scales from floats. Each row is multiplied by a value.
|
|
__forceinline Matrix3x3 & | Copy (const Matrix3x3 &source) |
| | Copy from a Matrix3x3.
|
|
__forceinline void | GetRow (const udword r, Point &p) const |
| | Returns a row.
|
|
__forceinline void | SetRow (const udword r, const Point &p) |
| | Sets a row.
|
|
__forceinline void | GetCol (const udword c, Point &p) const |
| | Returns a column.
|
|
__forceinline void | SetCol (const udword c, const Point &p) |
| | Sets a column.
|
|
__forceinline float | Trace () const |
| | Computes the trace. The trace is the sum of the 3 diagonal components.
|
|
__forceinline Matrix3x3 & | Zero () |
| | Clears the matrix.
|
|
__forceinline Matrix3x3 & | Identity () |
| | Sets the identity matrix.
|
|
__forceinline bool | IsIdentity () const |
| | Checks for identity.
|
|
__forceinline Matrix3x3 & | SkewSymmetric (const Point &a) |
| | Makes a skew-symmetric matrix (a.k.a. Star(*) Matrix) [ 0.0 -a.z a.y ] [ a.z 0.0 -a.x ] [ -a.y a.x 0.0 ].
|
|
__forceinline Matrix3x3 & | Neg () |
| | Negates the matrix.
|
|
__forceinline Matrix3x3 & | Neg (const Matrix3x3 &mat) |
| | Neg from another matrix.
|
|
__forceinline Matrix3x3 & | Add (const Matrix3x3 &mat) |
| | Add another matrix.
|
|
__forceinline Matrix3x3 & | Sub (const Matrix3x3 &mat) |
| | Sub another matrix.
|
|
__forceinline Matrix3x3 & | Mac (const Matrix3x3 &a, const Matrix3x3 &b, float s) |
| | Mac.
|
|
__forceinline Matrix3x3 & | Mac (const Matrix3x3 &a, float s) |
| | Mac.
|
|
__forceinline Matrix3x3 & | Mult (const Matrix3x3 &a, float s) |
| | this = A * s.
|
|
__forceinline Matrix3x3 & | Mult (const Matrix3x3 &a, const Matrix3x3 &b) |
| | this = a * b.
|
|
__forceinline Matrix3x3 & | MultAtB (const Matrix3x3 &a, const Matrix3x3 &b) |
| | this = transpose(a) * b.
|
|
__forceinline Matrix3x3 & | MultABt (const Matrix3x3 &a, const Matrix3x3 &b) |
| | this = a * transpose(b).
|
|
Matrix3x3 & | FromTo (const Point &from, const Point &to) |
| | Makes a rotation matrix mapping vector "from" to vector "to".
|
|
Matrix3x3 & | RotX (float angle) |
| | Set a rotation matrix around the X axis.
|
|
Matrix3x3 & | RotY (float angle) |
| | Set a rotation matrix around the Y axis.
|
|
Matrix3x3 & | RotZ (float angle) |
| | Set a rotation matrix around the Z axis.
|
|
Matrix3x3 & | Rot (float angle, const Point &axis) |
| | Make a rotation matrix about an arbitrary angle.
|
|
Matrix3x3 & | Transpose () |
| | Transpose the matrix.
|
|
Matrix3x3 & | Transpose (const Matrix3x3 &a) |
| | this = Transpose(a).
|
|
float | Determinant () const |
| | Compute the determinant of the matrix. We use the rule of Sarrus.
|
|
float | CoFactor (ubyte row, ubyte column) const |
| | Compute a cofactor. Used for matrix inversion.
|
|
Matrix3x3 & | Invert () |
| | Invert the matrix. Determinant must be different from zero, else matrix can't be inverted.
|
|
Matrix3x3 & | Exp (const Matrix3x3 &a) |
| | this = exp(a).
|
|
__forceinline Matrix3x3 | operator+ (const Matrix3x3 &mat) const |
| | Operator for Matrix3x3 Plus = Matrix3x3 + Matrix3x3;.
|
|
__forceinline Matrix3x3 | operator- (const Matrix3x3 &mat) const |
| | Operator for Matrix3x3 Minus = Matrix3x3 - Matrix3x3;.
|
|
__forceinline Matrix3x3 | operator * (const Matrix3x3 &mat) const |
| | Operator for Matrix3x3 Mul = Matrix3x3 * Matrix3x3;.
|
|
__forceinline Point | operator * (const Point &v) const |
| | Operator for Point Mul = Matrix3x3 * Point;.
|
|
__forceinline Matrix3x3 | operator * (float s) const |
| | Operator for Matrix3x3 Mul = Matrix3x3 * float;.
|
|
__forceinline Matrix3x3 | operator/ (float s) const |
| | Operator for Matrix3x3 Div = Matrix3x3 / float;.
|
|
__forceinline Matrix3x3 & | operator+= (const Matrix3x3 &mat) |
| | Operator for Matrix3x3 += Matrix3x3.
|
|
__forceinline Matrix3x3 & | operator-= (const Matrix3x3 &mat) |
| | Operator for Matrix3x3 -= Matrix3x3.
|
|
__forceinline Matrix3x3 & | operator *= (const Matrix3x3 &mat) |
| | Operator for Matrix3x3 *= Matrix3x3.
|
|
__forceinline Matrix3x3 & | operator *= (float s) |
| | Operator for Matrix3x3 *= float.
|
|
__forceinline Matrix3x3 & | operator/= (float s) |
| | Operator for Matrix3x3 /= float.
|
|
| operator Matrix4x4 () const |
| | Cast a Matrix3x3 to a Matrix4x4.
|
|
| operator Quat () const |
| | Cast a Matrix3x3 to a Quat.
|
Friends |
|
__forceinline friend Matrix3x3 | operator * (float s, const Matrix3x3 &mat) |
| | Operator for Matrix3x3 Mul = float * Matrix3x3;.
|
|
__forceinline friend Matrix3x3 | operator/ (float s, const Matrix3x3 &mat) |
| | Operator for Matrix3x3 Div = float / Matrix3x3;.
|
x' = x*m11 + y*m21 + z*m31 y' = x*m12 + y*m22 + z*m32 z' = x*m13 + y*m23 + z*m33