#include <OPC_IceHook.h>
Public Member Functions | |
float | CoFactor (udword row, udword col) const |
Computes a cofactor. Used for matrix inversion. | |
inline_ void | Copy (const Matrix4x4 &source) |
Copy from a Matrix4x4. | |
float | Determinant () const |
Computes the determinant of the matrix. | |
inline_ void | GetCol (const udword c, HPoint &p) const |
Returns a column. | |
inline_ void | GetCol (const udword c, Point &p) const |
Returns a column. | |
inline_ void | GetRow (const udword r, HPoint &p) const |
Returns a row. | |
inline_ void | GetRow (const udword r, Point &p) const |
Returns a row. | |
inline_ const HPoint & | GetRow (const udword r) const |
Returns a row. | |
inline_ HPoint & | GetRow (const udword r) |
Returns a row. | |
inline_ const HPoint & | GetTrans () const |
Returns the translation part of the matrix. | |
inline_ void | GetTrans (Point &p) const |
Gets the translation part of the matrix. | |
inline_ void | Identity () |
Sets the identity matrix. | |
Matrix4x4 & | Invert () |
Inverts the matrix. Determinant must be different from zero, else matrix can't be inverted. | |
inline_ bool | IsIdentity () const |
Checks for identity. | |
inline_ BOOL | IsValid () const |
Checks matrix validity. | |
inline_ | Matrix4x4 () |
Empty constructor. | |
inline_ | Matrix4x4 (float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33) |
Constructor from 16 values. | |
inline_ | Matrix4x4 (const Matrix4x4 &mat) |
Copy constructor. | |
inline_ | operator Matrix3x3 () const |
Casts a Matrix4x4 to a Matrix3x3. | |
operator PR () const | |
Casts a Matrix4x4 to a PR. | |
operator Quat () const | |
Casts a Matrix4x4 to a Quat. | |
inline_ Matrix4x4 | operator* (const Matrix4x4 &mat) const |
Operator for Matrix4x4 Mul = Matrix4x4 * Matrix4x4;. | |
inline_ HPoint | operator* (const HPoint &v) const |
Operator for HPoint Mul = Matrix4x4 * HPoint;. | |
inline_ Point | operator* (const Point &v) const |
Operator for Point Mul = Matrix4x4 * Point;. | |
inline_ Matrix4x4 | operator* (float s) const |
Operator for Matrix4x4 Scale = Matrix4x4 * float;. | |
Matrix4x4 & | operator*= (const Matrix4x4 &mat) |
Operator for Matrix4x4 *= Matrix4x4;. | |
inline_ Matrix4x4 & | operator*= (float s) |
Operator for Matrix4x4 *= float;. | |
inline_ Matrix4x4 | operator+ (const Matrix4x4 &mat) const |
Operator for Matrix4x4 Plus = Matrix4x4 + Matrix4x4;. | |
inline_ Matrix4x4 & | operator+= (const Matrix4x4 &mat) |
Operator for Matrix4x4 += Matrix4x4;. | |
inline_ Matrix4x4 | operator- (const Matrix4x4 &mat) const |
Operator for Matrix4x4 Minus = Matrix4x4 - Matrix4x4;. | |
inline_ Matrix4x4 & | operator-= (const Matrix4x4 &mat) |
Operator for Matrix4x4 -= Matrix4x4;. | |
inline_ Matrix4x4 | operator/ (float s) const |
Operator for Matrix4x4 Div = Matrix4x4 / float;. | |
inline_ Matrix4x4 & | operator/= (float s) |
Operator for Matrix4x4 /= float;. | |
inline_ const HPoint & | operator[] (int row) const |
inline_ HPoint & | operator[] (int row) |
Matrix4x4 & | Rot (float angle, Point &p1, Point &p2) |
Makes a rotation matrix about an arbitrary axis. | |
void | RotX (float angle) |
Sets a rotation matrix around the X axis. | |
void | RotY (float angle) |
Sets a rotation matrix around the Y axis. | |
void | RotZ (float angle) |
Sets a rotation matrix around the Z axis. | |
void | Scale (const Point &p) |
Scales from a Point. Each row is multiplied by a component. | |
void | Scale (float sx, float sy, float sz) |
Scales from floats. Each row is multiplied by a value. | |
inline_ Matrix4x4 & | Set (float m00, float m01, float m02, float m10, float m11, float m12, float m20, float m21, float m22) |
Assign values (rotation only) | |
inline_ Matrix4x4 & | Set (float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33) |
Assign values. | |
inline_ void | SetCol (const udword c, const HPoint &p) |
Sets a column. | |
inline_ void | SetCol (const udword c, const Point &p) |
Sets a column. | |
inline_ void | SetRow (const udword r, const HPoint &p) |
Sets a row. | |
inline_ void | SetRow (const udword r, const Point &p) |
Sets a row. | |
inline_ void | SetScale (const Point &p) |
Sets the scale from a Point. The point is put on the diagonal. | |
inline_ void | SetScale (float sx, float sy, float sz) |
Sets the scale from floats. Values are put on the diagonal. | |
inline_ void | SetTrans (const Point &p) |
Sets the translation part of the matrix, from a Point. | |
inline_ void | SetTrans (const HPoint &p) |
Sets the translation part of the matrix, from a HPoint. | |
inline_ void | SetTrans (float tx, float ty, float tz) |
Sets the translation part of the matrix, from floats. | |
inline_ float | Trace () const |
Computes the trace. The trace is the sum of the 4 diagonal components. | |
inline_ float | Trace3x3 () const |
Computes the trace of the upper 3x3 matrix. | |
void | Transpose () |
Transposes the matrix. | |
inline_ void | Zero () |
Clears the matrix. | |
inline_ | ~Matrix4x4 () |
Destructor. | |
Public Attributes | |
float | m [4][4] |
Friends | |
inline_ friend Matrix4x4 | operator* (float s, const Matrix4x4 &mat) |
Operator for Matrix4x4 Scale = float * Matrix4x4;. | |
inline_ friend Matrix4x4 | operator/ (float s, const Matrix4x4 &mat) |
Operator for Matrix4x4 Div = float / Matrix4x4;. |
Definition at line 22 of file OPC_IceHook.h.
inline_ IceMaths::Matrix4x4::Matrix4x4 | ( | ) | [inline] |
Empty constructor.
Definition at line 29 of file OPC_IceHook.h.
inline_ IceMaths::Matrix4x4::Matrix4x4 | ( | float | m00, |
float | m01, | ||
float | m02, | ||
float | m03, | ||
float | m10, | ||
float | m11, | ||
float | m12, | ||
float | m13, | ||
float | m20, | ||
float | m21, | ||
float | m22, | ||
float | m23, | ||
float | m30, | ||
float | m31, | ||
float | m32, | ||
float | m33 | ||
) | [inline] |
Constructor from 16 values.
Definition at line 31 of file OPC_IceHook.h.
inline_ IceMaths::Matrix4x4::Matrix4x4 | ( | const Matrix4x4 & | mat | ) | [inline] |
Copy constructor.
Definition at line 42 of file OPC_IceHook.h.
inline_ IceMaths::Matrix4x4::~Matrix4x4 | ( | ) | [inline] |
Destructor.
Definition at line 44 of file OPC_IceHook.h.
float Matrix4x4::CoFactor | ( | udword | row, |
udword | col | ||
) | const |
Computes a cofactor. Used for matrix inversion.
Definition at line 80 of file IceMatrix4x4.cpp.
inline_ void IceMaths::Matrix4x4::Copy | ( | const Matrix4x4 & | source | ) | [inline] |
Copy from a Matrix4x4.
Definition at line 70 of file OPC_IceHook.h.
float Matrix4x4::Determinant | ( | ) | const |
Computes the determinant of the matrix.
Definition at line 93 of file IceMatrix4x4.cpp.
Returns a column.
Definition at line 86 of file OPC_IceHook.h.
Returns a column.
Definition at line 88 of file OPC_IceHook.h.
Returns a row.
Definition at line 74 of file OPC_IceHook.h.
Returns a row.
Definition at line 76 of file OPC_IceHook.h.
Returns a row.
Definition at line 78 of file OPC_IceHook.h.
inline_ HPoint& IceMaths::Matrix4x4::GetRow | ( | const udword | r | ) | [inline] |
Returns a row.
Definition at line 80 of file OPC_IceHook.h.
inline_ const HPoint& IceMaths::Matrix4x4::GetTrans | ( | ) | const [inline] |
Returns the translation part of the matrix.
Definition at line 96 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::GetTrans | ( | Point & | p | ) | const [inline] |
Gets the translation part of the matrix.
Definition at line 98 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::Identity | ( | ) | [inline] |
Sets the identity matrix.
Definition at line 175 of file OPC_IceHook.h.
Matrix4x4 & Matrix4x4::Invert | ( | ) |
Inverts the matrix. Determinant must be different from zero, else matrix can't be inverted.
Definition at line 104 of file IceMatrix4x4.cpp.
inline_ bool IceMaths::Matrix4x4::IsIdentity | ( | ) | const [inline] |
Checks for identity.
Definition at line 177 of file OPC_IceHook.h.
inline_ BOOL IceMaths::Matrix4x4::IsValid | ( | ) | const [inline] |
Checks matrix validity.
Definition at line 202 of file OPC_IceHook.h.
Casts a Matrix4x4 to a Matrix3x3.
Definition at line 245 of file OPC_IceHook.h.
IceMaths::Matrix4x4::operator PR | ( | ) | const |
Casts a Matrix4x4 to a PR.
IceMaths::Matrix4x4::operator Quat | ( | ) | const |
Casts a Matrix4x4 to a Quat.
Operator for Matrix4x4 Mul = Matrix4x4 * Matrix4x4;.
Definition at line 279 of file OPC_IceHook.h.
Operator for HPoint Mul = Matrix4x4 * HPoint;.
Definition at line 304 of file OPC_IceHook.h.
Operator for Point Mul = Matrix4x4 * Point;.
Definition at line 307 of file OPC_IceHook.h.
Operator for Matrix4x4 Scale = Matrix4x4 * float;.
Definition at line 315 of file OPC_IceHook.h.
Operator for Matrix4x4 *= Matrix4x4;.
Definition at line 377 of file OPC_IceHook.h.
Operator for Matrix4x4 *= float;.
Definition at line 409 of file OPC_IceHook.h.
Operator for Matrix4x4 Plus = Matrix4x4 + Matrix4x4;.
Definition at line 259 of file OPC_IceHook.h.
Operator for Matrix4x4 += Matrix4x4;.
Definition at line 357 of file OPC_IceHook.h.
Operator for Matrix4x4 Minus = Matrix4x4 - Matrix4x4;.
Definition at line 269 of file OPC_IceHook.h.
Operator for Matrix4x4 -= Matrix4x4;.
Definition at line 367 of file OPC_IceHook.h.
Operator for Matrix4x4 Div = Matrix4x4 / float;.
Definition at line 335 of file OPC_IceHook.h.
Operator for Matrix4x4 /= float;.
Definition at line 419 of file OPC_IceHook.h.
Definition at line 429 of file OPC_IceHook.h.
Definition at line 430 of file OPC_IceHook.h.
Matrix4x4& IceMaths::Matrix4x4::Rot | ( | float | angle, |
Point & | p1, | ||
Point & | p2 | ||
) |
Makes a rotation matrix about an arbitrary axis.
void IceMaths::Matrix4x4::RotX | ( | float | angle | ) | [inline] |
Sets a rotation matrix around the X axis.
Definition at line 215 of file OPC_IceHook.h.
void IceMaths::Matrix4x4::RotY | ( | float | angle | ) | [inline] |
Sets a rotation matrix around the Y axis.
Definition at line 217 of file OPC_IceHook.h.
void IceMaths::Matrix4x4::RotZ | ( | float | angle | ) | [inline] |
Sets a rotation matrix around the Z axis.
Definition at line 219 of file OPC_IceHook.h.
void IceMaths::Matrix4x4::Scale | ( | const Point & | p | ) | [inline] |
Scales from a Point. Each row is multiplied by a component.
Definition at line 112 of file OPC_IceHook.h.
void IceMaths::Matrix4x4::Scale | ( | float | sx, |
float | sy, | ||
float | sz | ||
) | [inline] |
Scales from floats. Each row is multiplied by a value.
Definition at line 119 of file OPC_IceHook.h.
inline_ Matrix4x4& IceMaths::Matrix4x4::Set | ( | float | m00, |
float | m01, | ||
float | m02, | ||
float | m10, | ||
float | m11, | ||
float | m12, | ||
float | m20, | ||
float | m21, | ||
float | m22 | ||
) | [inline] |
Assign values (rotation only)
Definition at line 47 of file OPC_IceHook.h.
inline_ Matrix4x4& IceMaths::Matrix4x4::Set | ( | float | m00, |
float | m01, | ||
float | m02, | ||
float | m03, | ||
float | m10, | ||
float | m11, | ||
float | m12, | ||
float | m13, | ||
float | m20, | ||
float | m21, | ||
float | m22, | ||
float | m23, | ||
float | m30, | ||
float | m31, | ||
float | m32, | ||
float | m33 | ||
) | [inline] |
Assign values.
Definition at line 57 of file OPC_IceHook.h.
Sets a column.
Definition at line 90 of file OPC_IceHook.h.
Sets a column.
Definition at line 92 of file OPC_IceHook.h.
Sets a row.
Definition at line 82 of file OPC_IceHook.h.
Sets a row.
Definition at line 84 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::SetScale | ( | const Point & | p | ) | [inline] |
Sets the scale from a Point. The point is put on the diagonal.
Definition at line 108 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::SetScale | ( | float | sx, |
float | sy, | ||
float | sz | ||
) | [inline] |
Sets the scale from floats. Values are put on the diagonal.
Definition at line 110 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::SetTrans | ( | const Point & | p | ) | [inline] |
Sets the translation part of the matrix, from a Point.
Definition at line 100 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::SetTrans | ( | const HPoint & | p | ) | [inline] |
Sets the translation part of the matrix, from a HPoint.
Definition at line 102 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::SetTrans | ( | float | tx, |
float | ty, | ||
float | tz | ||
) | [inline] |
Sets the translation part of the matrix, from floats.
Definition at line 104 of file OPC_IceHook.h.
inline_ float IceMaths::Matrix4x4::Trace | ( | ) | const [inline] |
Computes the trace. The trace is the sum of the 4 diagonal components.
Definition at line 169 of file OPC_IceHook.h.
inline_ float IceMaths::Matrix4x4::Trace3x3 | ( | ) | const [inline] |
Computes the trace of the upper 3x3 matrix.
Definition at line 171 of file OPC_IceHook.h.
void IceMaths::Matrix4x4::Transpose | ( | ) | [inline] |
Transposes the matrix.
Definition at line 225 of file OPC_IceHook.h.
inline_ void IceMaths::Matrix4x4::Zero | ( | ) | [inline] |
Clears the matrix.
Definition at line 173 of file OPC_IceHook.h.
Operator for Matrix4x4 Scale = float * Matrix4x4;.
Definition at line 325 of file OPC_IceHook.h.
Operator for Matrix4x4 Div = float / Matrix4x4;.
Definition at line 347 of file OPC_IceHook.h.
float IceMaths::Matrix4x4::m[4][4] |
Definition at line 434 of file OPC_IceHook.h.