# CSIBCXfoMatd Class Reference

Class representing a 4x4 transformation matrix. More...

`#include <SIBCXfoMatd.h>`

Inheritance diagram for CSIBCXfoMatd:

List of all members.

## Public Member Functions
| CSIBCXfoMatd (void)
| CSIBCXfoMatd (const CSIBCVector4Dd &in_vct0, const CSIBCVector4Dd &in_vct1, const CSIBCVector4Dd &in_vct2, const CSIBCVector4Dd &in_vct3, const bool in_bAreRows=true)
| CSIBCXfoMatd (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
const double * | GetArray () const
CSIBCXfoMatd & | Set (int in_nRow, int in_nCol, const double in_dVal)
CSIBCXfoMatd & | Set (double in_dVal[4][4])
CSIBCXfoMatd & | Set (double in_dVal[3][3])
CSIBCXfoMatd & | Set (const CSIBCMatrix44d &in_mat)
CSIBCXfoMatd & | Set (const CSIBCMatrix33d &in_mat)
CSIBCXfoMatd & | Set (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd & | Set (const CSIBCRotMatd &in_mat)
CSIBCXfoMatd & | SetWithTranspose (const CSIBCRotMatd &in_mat)
CSIBCXfoMatd & | SetRow (const int in_nRow, const CSIBCVector4Dd &in_vct)
CSIBCXfoMatd & | SetRow (const int in_nRow, double in_dA0, double in_dA1, double in_dA2, double in_dA3)
CSIBCXfoMatd & | SetCol (const int in_nCol, const CSIBCVector4Dd &in_vct)
CSIBCXfoMatd & | SetCol (const int in_nCol, double in_dA0, double in_dA1, double in_dA2, double in_dA3)
CSIBCXfoMatd & | SetIdentity (void)
bool | operator== (const CSIBCMatrix44d &in_mat) const
bool | operator!= (const CSIBCMatrix44d &in_mat) const
CSIBCXfoMatd & | Mul (const CSIBCXfoMatd &in_mat1, const CSIBCXfoMatd &in_mat2)
CSIBCXfoMatd & | Mul (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd & | Mul (const CSIBCXfoMatd &in_xfomat, const CSIBCRotMatd &in_rotmat)
CSIBCXfoMatd & | Mul (const CSIBCRotMatd &in_rotmat, const CSIBCXfoMatd &in_xfomat)
CSIBCXfoMatd & | MulTransByReg (const CSIBCRotMatd &in_rotmat, const CSIBCXfoMatd &in_xfomat)
double | GetDet (void) const
double | GetDet33 (void) const
double | GetTrace (void) const
CSIBCXfoMatd & | Transpose (const CSIBCXfoMatd &in_mat)
CSIBCXfoMatd & | Transpose (void)
bool | Invert (const CSIBCXfoMatd &in_mat)
bool | Invert (void)
CSIBCVector3Dd & | GetTranslation (CSIBCVector3Dd &out_vctTrs) const
CSIBCXfoMatd & | SetTranslation (const CSIBCVector3Dd &in_vctTrs)
CSIBCXfoMatd & | AddTranslation (const CSIBCVector3Dd &in_vctTrs)
CSIBCRotMatd & | GetRotation (CSIBCRotMatd &out_matRot) const
CSIBCRotationd & | GetRotation (CSIBCRotationd &out_rot) const
CSIBCXfoMatd & | SetRotation (const CSIBCRotMatd &in_matRot)
CSIBCXfoMatd & | AddRotation (const CSIBCRotMatd &in_matRot)
CSIBCVector3Dd & | GetScaling (CSIBCVector3Dd &out_vctScl) const
CSIBCXfoMatd & | SetScaling (const CSIBCVector3Dd &in_vctScl)
CSIBCXfoMatd & | AddScaling (const CSIBCVector3Dd &in_vctScl, bool in_bPreScaling=true)
void | SetScalingAndRotation (const CSIBCVector3Dd &in_vctScl, CSIBCRotationd &in_rot)
void | GetScalingAndRotation (CSIBCVector3Dd &out_vctScl, CSIBCRotationd &out_rot) const
void | GetAffineDecomposition (CSIBCRotMatd &out_sclRot, CSIBCXfoMatd &out_matSRT) const
void | GetSmartDecomposition (CSIBCVector3D &out_Scale, CSIBCVector3D &out_Rotate, CSIBCVector3D &out_Trans) const
## Friends
bool | AreAlmostEqual (const CSIBCXfoMatd &in_mat1, const CSIBCXfoMatd &in_mat2, const double in_dEpsilon=HEXA_EPS)

## Detailed Description

Class representing a 4x4 transformation matrix.

CSIBCXfoMatd is a specialized 4X4 matrix that represents transformations. It uses double precision floating-point numbers for its data, and operations (as it is derived from CSIBCMatrix44d).

Although transformations may be defined simply with any generic 4X4, this class provides extra methods to make specifying and working with transformation matricies easier. A class for general transformations, independent of matrix form is provided in CSIBCTranfod.

There are several other matrix classes aswell. Classes with specific applications, such as CSIBCRotMatd used for representing rotation matricies, Other matrix classes are not as specialized as CSIBCRotMatd or CSIBCXfoMatd, and are used to represent general matricies. These classes include CSIBCMatrix4x4, CSIBCMatrix44d and CSIBCMartrix33d.

## Constructor & Destructor Documentation

CSIBCXfoMatd | ( | void |  | ) |

Default constructor Sets the new matrix to be the identity matrix.

See also:
  CSIBCXfoMatd::SetIdentity

CSIBCXfoMatd | ( | 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.

Parameters:

  | 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).

CSIBCXfoMatd | ( | 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.

Parameters:

  | 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.

## Member Function Documentation

double Get | ( | const int | in_nRow,
|  | const int | in_nCol |
| ) |  |  | const

Returns an element of the marix.

Parameters:

  | in_nRow | Row index of the element to retrieve (zero indexed).
  | in_nCol | Column index of the element to retrieve (zero indexed).

Returns:
  double The value of the element at the given matrix position.

See also:
  CSIBCXfoMatd::Set(int, int, const double)

Reimplemented from CSIBCMatrix44d.

const double* GetArray | ( |  | ) | const

Returns a pointer to the 4X4 array containing the data for this matrix. Note that the pointer returned from this function should not be freed. Any modification to the array results in modification of this object directly.

Returns:
  const double* Pointer to the 4X4 array containing the data for this matrix.

See also:
  CSIBCXfoMatd::Get

CSIBCXfoMatd& Set | ( | int | in_nRow,
|  | int | in_nCol,
|  | const double | in_dVal |
| ) |  |  |

Sets an element of the matrix.

Parameters:

  | 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.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set | ( | double | in_dVal[4][4] | ) |

Sets all elements of the matrix.

Parameters:

  | in_dVal | 4x4 array of double values, containing the new values for all the matrix elements.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set | ( | double | in_dVal[3][3] | ) |

Sets the top-left submatrix of this matrix.

Parameters:

  | in_dVal | 3x3 array of double values, containing the new values for the elements of the top-left submatrix.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

CSIBCXfoMatd& Set | ( | const CSIBCMatrix44d & | in_mat | ) |

Sets all elements of the matrix to those contained in `in_mat`.

Parameters:

  | in_mat | Matrix to copy all element values from.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Set | ( | const CSIBCMatrix33d & | in_mat | ) |

Sets all elements of the top-left submatrix of this matrix to those contained in `in_mat`.

Parameters:

  | in_mat | Matrix to copy top-left submatrix element value from.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

CSIBCXfoMatd& Set | ( | const CSIBCXfoMatd & | in_mat | ) |

Sets all elements of the matrix to those contained in `in_mat`.

Parameters:

  | in_mat | Matrix to copy all element values from.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

CSIBCXfoMatd& Set | ( | const CSIBCRotMatd & | in_mat | ) |

Sets the transformation matrix to be a pure rotation, defined by `in_mat`.

Parameters:

  | in_mat | Rotation to set this transformation matrix to.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

CSIBCXfoMatd& SetWithTranspose | ( | const CSIBCRotMatd & | in_mat | ) |

Sets the transformation matrix to be a pure rotation, defined by the transpose of `in_mat`.

Parameters:

  | in_mat | Rotation transpose to set this transformation matrix to.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

CSIBCXfoMatd& SetRow | ( | const int | in_nRow,
|  | const CSIBCVector4Dd & | in_vct |
| ) |  |  |

Sets all elements in a row of the matrix.

Parameters:

  | in_nRow | Row index of the row to set (zero indexed).
  | in_vct | Vector containing the values to replace the specified row elements with.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& 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.

Parameters:

  | 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.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& SetCol | ( | const int | in_nCol,
|  | const CSIBCVector4Dd & | in_vct |
| ) |  |  |

Sets all elements in a column of the matrix.

Parameters:

  | in_nCol | Column index of the column to set (zero indexed).
  | in_vct | Vector containing the values to replace the specified column elements with.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& 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.

Parameters:

  | 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.

See also:
  CSIBCXfoMatd::Set

  CSIBCXfoMatd::SetRow

  CSIBCXfoMatd::SetCol

  CSIBCXfoMatd::Get

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& SetIdentity | ( | void |  | ) |

Sets this matrix to be the identity matrix.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Set

Reimplemented from CSIBCMatrix44d.

bool operator== | ( | const CSIBCMatrix44d & | in_mat | ) | const

Determines whether all corresponding elements of this matrix and `in_mat` are exactly equal.

Parameters:

  | in_mat | The matrix to compare equality with.

Returns:
  bool true if the matricies are exactly equal, false otherwise.

See also:
  CSIBCXfoMatd::AreAlmostEqual

  CSIBCXfoMatd::operator!=

Reimplemented from CSIBCMatrix44d.

bool operator!= | ( | const CSIBCMatrix44d & | in_mat | ) | const

Determines whether any corresponding elements of this matrix and `in_mat` are different.

Parameters:

  | in_mat | The matrix to compare inequality with.

Returns:
  bool true if the matricies differ in any element, false otherwise.

See also:
  CSIBCXfoMatd::AreAlmostEqual

  CSIBCXfoMatd::operator==

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Mul | ( | const CSIBCXfoMatd & | in_mat1,
|  | const CSIBCXfoMatd & | in_mat2 |
| ) |  |  |

Computes the matrix multiplication of two matricies (`in_mat1` * `in_mat2`) and stores the result in this matrix.

Parameters:

  | in_mat1 | The first matrix in the multiplication (on the left).
  | in_mat2 | The second matrix in the multiplication (on the right).

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Mul

  CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul | ( | const CSIBCXfoMatd & | in_mat | ) |

Computes the matrix multiplication of this matrix and `in_mat` (`this` * `in_mat`) and stores the result in this matrix.

Parameters:

  | in_mat | The matrix to right-multiply this matrix by.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Mul

  CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul | ( | const CSIBCXfoMatd & | in_xfomat,
|  | const CSIBCRotMatd & | in_rotmat |
| ) |  |  |

Computes the matrix multiplication of two matricies (`in_mat1` * `in_mat2`) and stores the result in this matrix.

Parameters:

  | in_mat1 | The tranformation matrix in the multiplication (on the left).
  | in_mat2 | The pure rotation matrix in the multiplication (on the right).

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Mul

  CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& Mul | ( | const CSIBCRotMatd & | in_rotmat,
|  | const CSIBCXfoMatd & | in_xfomat |
| ) |  |  |

Computes the matrix multiplication of two matricies (`in_mat1` * `in_mat2`) and stores the result in this matrix.

Parameters:

  | in_mat1 | The pure rotation matrix in the multiplication (on the left).
  | in_mat2 | The tranformation matrix in the multiplication (on the right).

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Mul

  CSIBCXfoMatd::MulTransByReg

CSIBCXfoMatd& MulTransByReg | ( | const CSIBCRotMatd & | in_rotmat,
|  | const CSIBCXfoMatd & | in_xfomat |
| ) |  |  |

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.

Parameters:

  | 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).

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Mul

  CSIBCXfoMatd::MulRegByTrans

  CSIBCXfoMatd::Div

double GetDet | ( | void |  | ) | const

Computes the determinant of this matrix.

Returns:
  double The determinant of this matrix.

See also:
  CSIBCXfoMatd::GetDet33

  CSIBCXfoMatd::GetTrace

Reimplemented from CSIBCMatrix44d.

double GetDet33 | ( | void |  | ) | const

Computes the determines of the top-left 3x3 submatrix of this matrix.

Returns:
  double The determinant of the top-left 3x3 submatrix.

See also:
  CSIBCXfoMatd::GetDet

  CSIBCXfoMatd::GetTrace

double GetTrace | ( | void |  | ) | const

Computes the trace of this matrix. A trace is the sum of all the diagonal elements of a matrix.

Returns:
  double The trace of this matrix.

See also:
  CSIBCXfoMatd::GetDet

  CSIBCXfoMatd::GetDet33

Reimplemented from CSIBCMatrix44d.

CSIBCXfoMatd& Transpose | ( | const CSIBCXfoMatd & | in_mat | ) |

Sets this matrix to be the transpose of `in_mat`.

Parameters:

  | in_mat | Matrix containing the transpose of the desired matrix.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Transpose()

CSIBCXfoMatd& Transpose | ( | void |  | ) |

Sets this matrix to its transpose.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::Transpose( const CSIBCXfoMatd& )

Reimplemented from CSIBCMatrix44d.

bool Invert | ( | const CSIBCXfoMatd & | in_mat | ) |

Sets this matrix to be the inverse of `in_mat`.

Parameters:

  | in_mat | Matrix containing the inverse of the desired matrix.

Returns:
  bool true if `in_mat` could be inverted and the assignment was successful, false otherwise.

See also:
  CSIBCXfoMatd::Invert()

bool Invert | ( | void |  | ) |

Sets this matrix to its inverse.

Returns:
  bool true if this matrix could be inverted and the assignment was successful, false otherwise.

See also:
  CSIBCXfoMatd::Invert( const CSIBCXfoMatd& )

Reimplemented from CSIBCMatrix44d.

CSIBCVector3Dd& GetTranslation | ( | CSIBCVector3Dd & | out_vctTrs | ) | const

Gets the translation contained in this matrix.

Parameters:

  | out_vctTrs | Receives the translation in the X, Y and Z directions.

Returns:
  CSIBCVector3Dd& Reference to `out_vctTrs`.

See also:
  CSIBCXfoMatd::SetTranslation

  CSIBCXfoMatd::AddTranslation

CSIBCXfoMatd& SetTranslation | ( | const CSIBCVector3Dd & | in_vctTrs | ) |

Sets the translation contained in this matrix.

Parameters:

  | in_vctTrs | Vector containing the translations in the X, Y and Z directions.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::GetTranslation

  CSIBCXfoMatd::AddTranslation

CSIBCXfoMatd& AddTranslation | ( | const CSIBCVector3Dd & | in_vctTrs | ) |

Adds a translation to the translation in this matrix.

Parameters:

  | in_vctTrs | Vector containing the translations to add in the X, Y and Z directions.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::GetTranslation

  CSIBCXfoMatd::SetTranslation

CSIBCRotMatd& GetRotation | ( | CSIBCRotMatd & | out_matRot | ) | const

Gets the rotation matrix contained in this matrix as a rotation matrix.

Parameters:

  | out_matRot | Receives the rotation matrix.

Returns:
  CSIBCVector3Dd& Reference to `out_matRot`.

See also:
  CSIBCXfoMatd::GetRotation

  CSIBCXfoMatd::SetRotation

  CSIBCXfoMatd::AddRotation

CSIBCRotationd& GetRotation | ( | CSIBCRotationd & | out_rot | ) | const

Gets the rotation matrix contained in this matrix as a rotation object.

Parameters:

  | out_rot | Receives the rotation object.

Returns:
  CSIBCVector3Dd& Reference to `out_rot`.

See also:
  CSIBCXfoMatd::GetRotation

  CSIBCXfoMatd::SetRotation

  CSIBCXfoMatd::AddRotation

CSIBCXfoMatd& SetRotation | ( | const CSIBCRotMatd & | in_matRot | ) |

Sets the rotation contained in this matrix.

Parameters:

  | in_matRot | Rotation matrix containing the rotation to set for this matrix.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::GetRotation

  CSIBCXfoMatd::AddRotation

CSIBCXfoMatd& AddRotation | ( | const CSIBCRotMatd & | in_matRot | ) |

Adds a rotation to the rotation in this matrix.

Parameters:

  | in_matRot | Rotation matrix containing the rotation to add.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::GetRotation

  CSIBCXfoMatd::SetRotation

CSIBCVector3Dd& GetScaling | ( | CSIBCVector3Dd & | out_vctScl | ) | const

Gets the scaling of this matrix.

Parameters:

  | out_vctScl | Receives the scaling components in the X, Y and Z directions.

Returns:
  CSIBCVector3Dd& Reference to `out_vctScl`.

See also:
  CSIBCXfoMatd::SetScaling

  CSIBCXfoMatd::AddScaling

CSIBCXfoMatd& SetScaling | ( | const CSIBCVector3Dd & | in_vctScl | ) |

Sets the scaling of this matrix.

Parameters:

  | in_vctScl | Vector containing the scaling in the X, Y and Z directions.

Returns:
  CSIBCXfoMatd& Reference to this matrix.

See also:
  CSIBCXfoMatd::GetScaling

  CSIBCXfoMatd::AddScaling

CSIBCXfoMatd& AddScaling | ( | const CSIBCVector3Dd & | in_vctScl,
|  | bool | in_bPreScaling = `true` |
| ) |  |  |

Adds scaling to this matrix.

Parameters:

  | in_vctScl | Vector containing the scaling to add in the X, Y and Z directions.
  | in_bPreScaling | Whether the scaling operations should be applied before or after the translation in this matrix. if true scaling operations are applied before, false if scaling operations are to be applied after.

Returns:
  CSIBCXfoMatd& Reference to this matirx.

See also:
  CSIBCXfoMatd::GetScaling

  CSIBCXfoMatd::SetScaling

void SetScalingAndRotation | ( | const CSIBCVector3Dd & | in_vctScl,
|  | CSIBCRotationd & | in_rot |
| ) |  |  |

Sets the scaling and rotation for this transformation matrix. Note that it is faster to use this method, than a combination of CSIBCXfoMatd::SetScaling, and CSIBCXfoMatd::SetRotation.

Parameters:

  | in_vctScl | Vector containing the scaling in the X, Y and Z directions.
  | in_rot | Rotation object containing the rotation for this matrix.

See also:
  CSIBCXfoMatd::SetScaling

  CSIBCXfoMatd::SetRotation

  CSIBCXfoMatd::GetScalingAndRotation

void GetScalingAndRotation | ( | CSIBCVector3Dd & | out_vctScl,
|  | CSIBCRotationd & | out_rot |
| ) |  |  | const

Gets the scaling and rotation for this transformation matrix. Note that it is faster to use this method, than a combination of CSIBCXfoMatd::GetScaling, and CSIBCXfoMatd::GetRotation.

Parameters:

  | out_vct | Receives the scaling components in the X, Y and Z directions.
  | out_rot | Receives the rotation object for this matrix.

See also:
  CSIBCXfoMatd::GetScaling

  CSIBCXfoMatd::GetRotation

  CSIBCXfoMatd::SetScalingAndRotation

void GetAffineDecomposition | ( | CSIBCRotMatd & | out_sclRot,
|  | CSIBCXfoMatd & | out_matSRT |
| ) |  |  | const

Gets the affine tranformation represented by this transformation matrix.

Parameters:

  | out_sclRot | Receives the affine scaling/rotation matrix associated with this transformation matrix.
  | out_matSRT | Receives the affine transformation matrix associated with this transformation matrix.

void GetSmartDecomposition | ( | CSIBCVector3D & | out_Scale,
|  | CSIBCVector3D & | out_Rotate,
|  | CSIBCVector3D & | out_Trans |
| ) |  |  | const

A smart matrix decomposition method to handle negative scaling

Parameters:

  | out_Scale | Receives the scale components respected.
  | out_Rotate | Receives the rotation components. respected.
  | out_Trans | Receives the translation components.

## Friends And Related Function Documentation

bool AreAlmostEqual | ( | const CSIBCXfoMatd & | in_mat1,
|  | const CSIBCXfoMatd & | in_mat2,
|  | const double | in_dEpsilon = `HEXA_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.

Parameters:

  | in_mat1 | First matrix for equality comparison.
  | in_mat2 | Second matrix for equality comparison.
  | in_dEpsilon | Floating-point comparison error range. Defaults to HEXA_EPS.

Returns:
  bool true if the matricies are equal, false otherwise.

See also:
  CSIBCXfoMatd::operator==

  CSIBCXfoMatd::operator!=

The documentation for this class was generated from the following file:

- SIBCXfoMatd.h