#include <SIBCMatrix44d.h>
Inheritance diagram for CSIBCMatrix44d:

Public Member Functions |
|
| CSIBCMatrix44d (void) | |
| CSIBCMatrix44d (const CSIBCVector4Dd &in_vct0, const CSIBCVector4Dd &in_vct1, const CSIBCVector4Dd &in_vct2, const CSIBCVector4Dd &in_vct3, const bool in_bAreRows=true) | |
| CSIBCMatrix44d (const double in_dA00, const double in_dA01, const double in_dA02, const double in_dA03, const double in_dA10, const double in_dA11, const double in_dA12, const double in_dA13, const double in_dA20, const double in_dA21, const double in_dA22, const double in_dA23, const double in_dA30, const double in_dA31, const double in_dA32, const double in_dA33) | |
| double | Get (const int in_nRow, const int in_nCol) const |
| CSIBCMatrix44d & | Set (int in_nRow, int in_nCol, const double in_dVal) |
| CSIBCMatrix44d & | Set (const double in_dA00, const double in_dA01, const double in_dA02, const double in_dA03, const double in_dA10, const double in_dA11, const double in_dA12, const double in_dA13, const double in_dA20, const double in_dA21, const double in_dA22, const double in_dA23, const double in_dA30, const double in_dA31, const double in_dA32, const double in_dA33) |
| CSIBCMatrix44d & | Set (const double in_dArray[4][4]) |
| CSIBCMatrix44d & | Set (const double *in_dPtr) |
| CSIBCMatrix44d & | Set (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | SetRow (const int in_nRow, const CSIBCVector4Dd &in_vct) |
| CSIBCMatrix44d & | SetRow (const int in_nRow, double in_dA0, double in_dA1, double in_dA2, double in_dA3) |
| CSIBCMatrix44d & | SetCol (const int in_nCol, const CSIBCVector4Dd &in_vct) |
| CSIBCMatrix44d & | SetCol (const int in_nCol, double in_dA0, double in_dA1, double in_dA2, double in_dA3) |
| CSIBCMatrix44d & | SetNull () |
| CSIBCMatrix44d & | SetIdentity () |
| bool | operator== (const CSIBCMatrix44d &in_mat) const |
| bool | operator!= (const CSIBCMatrix44d &in_mat) const |
| bool | IsNull (const double in_dEpsilon=PICO_EPS) const |
| CSIBCMatrix44d & | Add (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2) |
| CSIBCMatrix44d & | Add (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | Sub (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2) |
| CSIBCMatrix44d & | Sub (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | Mul (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2) |
| CSIBCMatrix44d & | Mul (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | MulTransByReg (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2) |
| CSIBCMatrix44d & | MulRegByTrans (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2) |
| CSIBCMatrix44d & | Negate (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | Negate () |
| CSIBCMatrix44d & | Mul (const double in_dFactor, const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | Mul (const CSIBCMatrix44d &in_mat, const double in_dFactor) |
| CSIBCMatrix44d & | Mul (const double in_dFactor) |
| CSIBCMatrix44d & | Div (const CSIBCMatrix44d &in_mat, const double in_dFactor) |
| CSIBCMatrix44d & | Div (const double in_dFactor) |
| double | GetDet (void) const |
| double | GetDet (int in_nRow, int in_nCol) const |
| double | GetTrace (void) const |
| CSIBCMatrix44d & | Transpose (const CSIBCMatrix44d &in_mat) |
| CSIBCMatrix44d & | Transpose (void) |
| bool | Invert (const CSIBCMatrix44d &in_mat) |
| bool | Invert (void) |
| bool | TransposeInverse (const CSIBCMatrix44d &in_mat) |
| bool | TransposeInverse (void) |
| CSIBCMatrix44d & | Symmetry (CSIBCMatrix44d &in_mat) const |
| CSIBCMatrix44d & | Symmetry (void) const |
| CSIBCMatrix44d & | Adjoint (CSIBCMatrix44d &in_mat) const |
| CSIBCMatrix44d & | Adjoint (void) const |
| void | SetOuterProduct (const CSIBCVector4Dd &in_vct1, const CSIBCVector4Dd &in_vct2) |
Friends |
|
| bool | AreAlmostEqual (const CSIBCMatrix44d &in_mat1, const CSIBCMatrix44d &in_mat2, const double in_dEpsilon=PICO_EPS) |
CSIBCMatrix44d objects represent matricies, and define a set of operations which are useful in the context of a matrix.
This class uses double precision floating point numbers to store element values. There exists three other matrix classes, CSIBCMatrix4x4, CSIBCMatrix33d and CSIBCMatrixMNd. They are used to represent 4x4 matricies with single precision floating-point numbers, 3x3 matricies with double precision floating-point numbers, and MxN matricies with double precision floating-point numbers, respectively.
| CSIBCMatrix44d | ( | void | ) |
Default constructor Sets all elements in the matrix to zero.
| CSIBCMatrix44d | ( | const CSIBCVector4Dd & | in_vct0, | |
| const CSIBCVector4Dd & | in_vct1, | |||
| const CSIBCVector4Dd & | in_vct2, | |||
| const CSIBCVector4Dd & | in_vct3, | |||
| const bool | in_bAreRows = true |
|||
| ) |
Constructor. Sets the rows of the new matrix to be in_vct0, in_vct1, in_vct2, and in_vct3. If in_bAreRows is false, then the input vectors are used as the columns of the new matrix.
| in_vct0 | The vector to use for the first row (or column) of the matrix. | |
| in_vct1 | The vector to use for the second row (or column) of the matrix. | |
| in_vct2 | The vector to use for the third row (or column) of the matrix. | |
| in_vct3 | The vector to use for the fourth row (or column) of the matrix. | |
| in_bAreRows | Whether the vectors given represent rows or columns of the matrix (true == Rows, false == Columns). Defaults to true (rows). |
| CSIBCMatrix44d | ( | const double | in_dA00, | |
| const double | in_dA01, | |||
| const double | in_dA02, | |||
| const double | in_dA03, | |||
| const double | in_dA10, | |||
| const double | in_dA11, | |||
| const double | in_dA12, | |||
| const double | in_dA13, | |||
| const double | in_dA20, | |||
| const double | in_dA21, | |||
| const double | in_dA22, | |||
| const double | in_dA23, | |||
| const double | in_dA30, | |||
| const double | in_dA31, | |||
| const double | in_dA32, | |||
| const double | in_dA33 | |||
| ) |
Constructor. Specifies the value of each element in the new matrix.
| in_dA00 | The value for the element in row 1, column 1. | |
| in_dA01 | The value for the element in row 1, column 2. | |
| in_dA02 | The value for the element in row 1, column 3. | |
| in_dA03 | The value for the element in row 1, column 4. | |
| in_dA10 | The value for the element in row 2, column 1. | |
| in_dA11 | The value for the element in row 2, column 2. | |
| in_dA12 | The value for the element in row 2, column 3. | |
| in_dA13 | The value for the element in row 2, column 4. | |
| in_dA20 | The value for the element in row 3, column 1. | |
| in_dA21 | The value for the element in row 3, column 2. | |
| in_dA22 | The value for the element in row 3, column 3. | |
| in_dA23 | The value for the element in row 3, column 4. | |
| in_dA30 | The value for the element in row 4, column 1. | |
| in_dA31 | The value for the element in row 4, column 2. | |
| in_dA32 | The value for the element in row 4, column 3. | |
| in_dA33 | The value for the element in row 4, column 4. |
| double Get | ( | const int | in_nRow, | |
| const int | in_nCol | |||
| ) | const |
Returns an element of the marix.
| in_nRow | Row index of the element to retrieve (zero indexed). | |
| in_nCol | Column index of the element to retrieve (zero indexed). |
Reimplemented in CSIBCXfoMatd.
Sets an element of the matrix.
| in_nRow | Row index of the element to set (zero indexed). | |
| in_nCol | Column index of the element to set (zero indexed). | |
| in_dVal | Value for the element. |
Reimplemented in CSIBCXfoMatd.
| CSIBCMatrix44d& Set | ( | const double | in_dA00, | |
| const double | in_dA01, | |||
| const double | in_dA02, | |||
| const double | in_dA03, | |||
| const double | in_dA10, | |||
| const double | in_dA11, | |||
| const double | in_dA12, | |||
| const double | in_dA13, | |||
| const double | in_dA20, | |||
| const double | in_dA21, | |||
| const double | in_dA22, | |||
| const double | in_dA23, | |||
| const double | in_dA30, | |||
| const double | in_dA31, | |||
| const double | in_dA32, | |||
| const double | in_dA33 | |||
| ) |
Sets all elements of the matrix.
| in_dA00 | The value for the element in row 1, column 1. | |
| in_dA01 | The value for the element in row 1, column 2. | |
| in_dA02 | The value for the element in row 1, column 3. | |
| in_dA03 | The value for the element in row 1, column 4. | |
| in_dA10 | The value for the element in row 2, column 1. | |
| in_dA11 | The value for the element in row 2, column 2. | |
| in_dA12 | The value for the element in row 2, column 3. | |
| in_dA13 | The value for the element in row 2, column 4. | |
| in_dA20 | The value for the element in row 3, column 1. | |
| in_dA21 | The value for the element in row 3, column 2. | |
| in_dA22 | The value for the element in row 3, column 3. | |
| in_dA23 | The value for the element in row 3, column 4. | |
| in_dA30 | The value for the element in row 4, column 1. | |
| in_dA31 | The value for the element in row 4, column 2. | |
| in_dA32 | The value for the element in row 4, column 3. | |
| in_dA33 | The value for the element in row 4, column 4. |
| CSIBCMatrix44d& Set | ( | const double | in_dArray[4][4] | ) |
Sets all elements of the matrix.
| in_dVal | 4x4 array of double values, containing the new values for all the matrix elements. |
Reimplemented in CSIBCXfoMatd.
| CSIBCMatrix44d& Set | ( | const double * | in_dPtr | ) | [inline] |
Sets all elements of the matrix.
| in_dVal | 4x4 array of double values, containing the new values for all the matrix elements. |
| CSIBCMatrix44d& Set | ( | const CSIBCMatrix44d & | in_mat | ) |
Sets all elements of the matrix to those contained in in_mat.
| in_mat | Matrix to copy all element values from. |
Reimplemented in CSIBCXfoMatd.
Sets all elements in a row of the matrix.
| in_nRow | Row index of the row to set (zero indexed). | |
| in_vct | Vector containing the values to replace the specified row elements with. |
Reimplemented in CSIBCXfoMatd.
| CSIBCMatrix44d& SetRow | ( | const int | in_nRow, | |
| double | in_dA0, | |||
| double | in_dA1, | |||
| double | in_dA2, | |||
| double | in_dA3 | |||
| ) |
Sets all elements in a row of the matrix.
| in_nRow | Row index of the row to set (zero indexed). | |
| in_dA0 | Value for the element in the first column of the row. | |
| in_dA1 | Value for the element in the second column of the row. | |
| in_dA2 | Value for the element in the third column of the row. | |
| in_dA3 | Value for the element in the fourth column of the row. |
Reimplemented in CSIBCXfoMatd.
Sets all elements in a column of the matrix.
| in_nCol | Column index of the column to set (zero indexed). | |
| in_vct | Vector containing the values to replace the specified column elements with. |
Reimplemented in CSIBCXfoMatd.
| CSIBCMatrix44d& SetCol | ( | const int | in_nCol, | |
| double | in_dA0, | |||
| double | in_dA1, | |||
| double | in_dA2, | |||
| double | in_dA3 | |||
| ) |
Sets all elements in a column of the matrix.
| in_nCol | Column index of the column to set (zero indexed). | |
| in_dA0 | Value for the element in the first row of the column. | |
| in_dA1 | Value for the element in the second row of the column. | |
| in_dA2 | Value for the element in the third row of the column. | |
| in_dA3 | Value for the element in the fourth row of the column. |
Reimplemented in CSIBCXfoMatd.
Sets all elements in the matrix to zero.
Sets this matrix to be the identity matrix.
Reimplemented in CSIBCXfoMatd.
Determines whether all corresponding elements of this matrix and in_mat are exactly equal.
| in_mat | The matrix to compare equality with. |
Reimplemented in CSIBCXfoMatd.
Determines whether any corresponding elements of this matrix and in_mat are different.
| in_mat | The matrix to compare inequality with. |
Reimplemented in CSIBCXfoMatd.
Determines whether all elements of this matrix are zero. Since this function uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.
| in_dEpsilon | Floating-point comparison error range. Defaults to PICO_EPS |
Computes the matrix addition of two matricies, and stores the result in this matrix.
| in_mat1 | The first matrix to add. | |
| in_mat2 | The second matrix to add. |
| CSIBCMatrix44d& Add | ( | const CSIBCMatrix44d & | in_mat | ) |
Computes the matrix addition of this matrix and in_mat, and stores the result in this matrix.
| in_mat | The matrix to add to this matrix. |
Computes the difference of two matricies (in_mat1 - in_mat2) and stores the result in this matrix.
| in_mat1 | The matrix to subtract from. | |
| in_mat2 | The matrix to subtract. |
| CSIBCMatrix44d& Sub | ( | const CSIBCMatrix44d & | in_mat | ) |
Computes the difference of this matrix and in_mat2 (this - in_mat) and stores the result in this matrix.
| in_mat | The matrix to subtract. |
Computes the matrix multiplication of two matricies (in_mat1 * in_mat2) and stores the result in this matrix.
| in_mat1 | The first matrix in the multiplication (on the left). | |
| in_mat2 | The second matrix in the multiplication (on the right). |
| CSIBCMatrix44d& Mul | ( | const CSIBCMatrix44d & | in_mat | ) |
Computes the matrix multiplication of this matrix and in_mat (this * in_mat) and stores the result in this matrix.
| in_mat | The matrix to right-multiply this matrix by. |
Computes the matrix multiplication of the transpose of in_mat1 and in_mat2 (in_mat1^T * in_mat2) and stores the result in this matrix.
| in_mat1 | The first matrix in the multiplication (on the left), to be transposed before multiplication. | |
| in_mat2 | The second matrix in the multiplication (on the right). |
Computes the matrix multiplication of in_mat1 and the transpose of in_mat2 (in_mat1 * in_mat2^T) and stores the result in this matrix.
| in_mat1 | The first matrix in the multiplication (on the left). | |
| in_mat2 | The second matrix in the multiplication (on the right), to be transposed before multiplication. |
Sets this matrix to the negative of in_mat. The 'negative' of a matrix is produced by multiplying each element of the matrix by -1.
| in_mat | Matrix containing the data to set this matrix to the negative of. |
| CSIBCMatrix44d& Negate | ( | ) |
Sets this matrix to its negative. The 'negative' of a matrix is produced by multiplying each element of the matrix by -1.
| CSIBCMatrix44d& Mul | ( | const double | in_dFactor, | |
| const CSIBCMatrix44d & | in_mat | |||
| ) |
Scales each element of in_mat by in_dFactor, and assigns the result to the corresponding element in this matrix.
| in_dFactor | Scaling factor for elements of in_mat |
|
| in_mat | The input matrix, to scale and assign to this matrix. |
| CSIBCMatrix44d& Mul | ( | const CSIBCMatrix44d & | in_mat, | |
| const double | in_dFactor | |||
| ) |
Scales each element of in_mat by in_dFactor, and assigns the result to the corresponding element in this matrix.
| in_mat | The input matrix, to scale and assign to this matrix. | |
| in_dFactor | Scaling factor for elements of in_mat |
| CSIBCMatrix44d& Mul | ( | const double | in_dFactor | ) |
Scales each component of this matrix by in_dFactor
| in_dFactor | Scaling factor for elements in this matrix |
Divides each component of in_mat by in_dFactor and assigns the result to the corresponding element in this matrix.
| in_mat | The input matrix, to divide and assign to this matrix. | |
| in_dFactor | Dividing factor for elements of in_mat |
| CSIBCMatrix44d& Div | ( | const double | in_dFactor | ) |
Divides each component of this matrix by in_dFactor.
| in_dFactor | Dividing factor for elements of this matrix. |
Computes the determinant of this matrix.
Reimplemented in CSIBCXfoMatd.
| double GetDet | ( | int | in_nRow, | |
| int | in_nCol | |||
| ) | const |
Computes the determinant of the 3x3 matrix formed by removing row in_nRow, and column in_nCol from this matrix.
| in_nRow | The row to remove from this matrix. | |
| in_nRow | The column to remove from this matrix. |
Computes the trace of this matrix. A trace is the sum of all the diagonal elements of a matrix.
Reimplemented in CSIBCXfoMatd.
Sets this matrix to be the transpose of in_mat.
| in_mat | Matrix containing the transpose of the desired matrix. |
| CSIBCMatrix44d& Transpose | ( | void | ) |
Sets this matrix to its transpose.
Reimplemented in CSIBCXfoMatd.
Sets this matrix to be the inverse of in_mat.
| in_mat | Matrix containing the inverse of the desired matrix. |
in_mat could be inverted and the assignment was successful, false otherwise. | bool Invert | ( | void | ) |
Sets this matrix to its inverse.
Reimplemented in CSIBCXfoMatd.
Sets this matrix to the transpose of the inverse of in_mat.
| in_mat | Matrix containing the transpose of the inverse of the desired matrix. |
| bool TransposeInverse | ( | void | ) |
Sets this matrix to the transpose of the inverse of itself.
Not implemented yet
| CSIBCMatrix44d& Symmetry | ( | void | ) | const |
Not implemented yet
Not implemented yet
| CSIBCMatrix44d& Adjoint | ( | void | ) | const |
Not implemented yet
Not implemented yet
| bool AreAlmostEqual | ( | const CSIBCMatrix44d & | in_mat1, | |
| const CSIBCMatrix44d & | in_mat2, | |||
| const double | in_dEpsilon = PICO_EPS |
|||
| ) | [friend] |
Determines whether all corresponding elements of the matricies in_mat1 and in_mat2 are equal. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.
| in_mat1 | First matrix for equality comparison. | |
| in_mat2 | Second matrix for equality comparison. | |
| in_dEpsilon | Floating-point comparison error range. Defaults to PICO_EPS. |