TrinityCore
|
#include <Matrix.h>
Public Member Functions | |
~Impl () | |
Public Member Functions inherited from G3D::ReferenceCountedObject | |
virtual | ~ReferenceCountedObject () |
Static Public Member Functions | |
static void * | operator new (size_t size) |
static void | operator delete (void *p) |
Private Member Functions | |
void | setSize (int newRows, int newCols) |
Impl () | |
Impl (const Matrix3 &M) | |
Impl (const Matrix4 &M) | |
Impl (int r, int c) | |
Impl & | operator= (const Impl &m) |
Impl (const Impl &B) | |
void | setZero () |
void | set (int r, int c, T v) |
const T & | get (int r, int c) const |
void | mul (const Impl &B, Impl &out) const |
void | add (const Impl &B, Impl &out) const |
void | add (T B, Impl &out) const |
void | sub (const Impl &B, Impl &out) const |
void | sub (T B, Impl &out) const |
void | lsub (T B, Impl &out) const |
void | arrayMul (const Impl &B, Impl &out) const |
void | mul (T B, Impl &out) const |
void | arrayDiv (const Impl &B, Impl &out) const |
void | div (T B, Impl &out) const |
void | negate (Impl &out) const |
void | inverseViaAdjoint (Impl &out) const |
void | inverseInPlaceGaussJordan () |
void | adjoint (Impl &out) const |
void | cofactor (Impl &out) const |
T | cofactor (int r, int c) const |
void | transpose (Impl &out) const |
T | determinant () const |
T | determinant (int r, int c) const |
void | arrayLog (Impl &out) const |
void | arrayExp (Impl &out) const |
void | arraySqrt (Impl &out) const |
void | arrayCos (Impl &out) const |
void | arraySin (Impl &out) const |
void | swapRows (int r0, int r1) |
void | swapAndNegateCols (int c0, int c1) |
void | mulRow (int r, const T &v) |
void | abs (Impl &out) const |
void | withoutRowAndCol (int excludeRow, int excludeCol, Impl &out) const |
bool | anyNonZero () const |
bool | allNonZero () const |
void | setRow (int r, const T *vals) |
void | setCol (int c, const T *vals) |
Private Attributes | |
T ** | elt |
T * | data |
int | R |
int | C |
int | dataSize |
Friends | |
class | Matrix |
Used internally by Matrix.
Does not throw exceptions– assumes the caller has taken care of argument checking.
G3D::Matrix::Impl::~Impl | ( | ) |
|
inlineprivate |
|
inlineprivate |
|
private |
Ok if out == this or out == B
|
private |
|
private |
|
private |
|
private |
Ok if out == this or out == B
|
private |
|
private |
Ok if out == this or out == B
|
private |
|
private |
|
private |
|
private |
Cofactor [r][c] is defined as C[r][c] = -1 ^(r+c) * det(A[r][c]), where A[r][c] is the (R-1)x(C-1) matrix formed by removing row r and column c from the original matrix.
|
private |
|
private |
Determinant computed without the given row and column
Ok if out == this or out == B
|
private |
Use Gaussian elimination with pivots to solve for the inverse destructively in place.
|
private |
Slow way of computing an inverse; for reference
B - this
Multiplies this by B and puts the result in out.
|
private |
|
inlinestatic |
|
inlinestatic |
|
private |
|
inlineprivate |
|
private |
If R*C is much larger or smaller than the current, deletes all previous data and resets to random data. Otherwise re-uses existing memory and just resets R, C, and the row pointers.
|
private |
Ok if out == this or out == B
|
private |
|
private |
|
private |
Ok if out == this or out == B
|
private |
Makes a (R-1)x(C-1) copy of this matrix
|
friend |
|
private |
The number of columns
|
private |
Row major data for the entire matrix.
|
private |
|
private |
elt[r][c] = the element. Pointers into data.
|
private |
The number of rows