# CMatrix4f Class Reference

A class to represent a single precision floating point 4 by 4 matrix. This class is typically used for implementing custom ICE nodes. More...

`#include <xsi_matrix4f.h>`

List of all members.

## Public Member Functions
__forceinline | CMatrix4f ()
__forceinline | CMatrix4f (float in_f00, float in_f01, float in_f02, float in_f03, float in_f10, float in_f11, float in_f12, float in_f13, float in_f20, float in_f21, float in_f22, float in_f23, float in_f30, float in_f31, float in_f32, float in_f33)
__forceinline | CMatrix4f (const CMatrix4f &in_matrix4)
__forceinline | ~CMatrix4f ()
__forceinline CMatrix4f & | operator= (const CMatrix4f &in_matrix4)
__forceinline CMatrix4f & | operator *= (const CMatrix4f &in_matrix4)
__forceinline CMatrix4f & | SetIdentity ()
__forceinline bool | InvertInPlace ()
__forceinline bool | Invert (const CMatrix4f &in_matrix4)
__forceinline bool | TransposeInverseInPlace ()
__forceinline bool | TransposeInverse (const CMatrix4f &in_matrix4)
__forceinline void | TransposeInPlace ()
__forceinline void | Transpose (const CMatrix4f &in_matrix4)
__forceinline CMatrix4f & | MulInPlace (const CMatrix4f &in_matrix4)
__forceinline CMatrix4f & | Mul (const CMatrix4f &in_matrix4A, const CMatrix4f &in_matrix4B)
__forceinline void | Get (float &io_f00, float &io_f01, float &io_f02, float &io_f03, float &io_f10, float &io_f11, float &io_f12, float &io_f13, float &io_f20, float &io_f21, float &io_f22, float &io_f23, float &io_f30, float &io_f31, float &io_f32, float &io_f33) const
__forceinline void | Set (float in_f00, float in_f01, float in_f02, float in_f03, float in_f10, float in_f11, float in_f12, float in_f13, float in_f20, float in_f21, float in_f22, float in_f23, float in_f30, float in_f31, float in_f32, float in_f33)
__forceinline float * | Get ()
__forceinline void | Set (const float in_vals[4][4])
__forceinline float | GetValue (short in_sRow, short in_sCol) const
__forceinline void | SetValue (short in_sRow, short in_sCol, float in_fVal)
__forceinline bool | EpsilonEquals (const CMatrix4f &in_matrix4, float in_fEpsilon) const
__forceinline bool | Equals (const CMatrix4f &in_matrix4) const
__forceinline bool | operator== (const CMatrix4f &in_matrix4) const
__forceinline bool | operator!= (const CMatrix4f &in_matrix4) const
__forceinline bool | operator< (const CMatrix4f &in_matrix4) const

## Detailed Description

A class to represent a single precision floating point 4 by 4 matrix. This class is typically used for implementing custom ICE nodes.

## Constructor & Destructor Documentation

__forceinline CMatrix4f | ( |  | ) |

Default constructor.

__forceinline CMatrix4f | ( | float | in_f00,
|  | float | in_f01,
|  | float | in_f02,
|  | float | in_f03,
|  | float | in_f10,
|  | float | in_f11,
|  | float | in_f12,
|  | float | in_f13,
|  | float | in_f20,
|  | float | in_f21,
|  | float | in_f22,
|  | float | in_f23,
|  | float | in_f30,
|  | float | in_f31,
|  | float | in_f32,
|  | float | in_f33 |
| ) |  |  |

Constructor.

Parameters:

  | in_f00 | Value to set to this matrix[0,0].
  | in_f01 | Value to set to this matrix[0,1].
  | in_f02 | Value to set to this matrix[0,2].
  | in_f03 | Value to set to this matrix[0,3].
  | in_f10 | Value to set to this matrix[1,0].
  | in_f11 | Value to set to this matrix[1,1].
  | in_f12 | Value to set to this matrix[1,2].
  | in_f13 | Value to set to this matrix[1,3].
  | in_f20 | Value to set to this matrix[2,0].
  | in_f21 | Value to set to this matrix[2,1].
  | in_f22 | Value to set to this matrix[2,2].
  | in_f23 | Value to set to this matrix[2,3].
  | in_f30 | Value to set to this matrix[3,0].
  | in_f31 | Value to set to this matrix[3,1].
  | in_f32 | Value to set to this matrix[3,2].
  | in_f33 | Value to set to this matrix[3,3].

__forceinline CMatrix4f | ( | const CMatrix4f & | in_matrix4 | ) |

Copy constructor.

Parameters:

  | in_matrix4 | constant class object.

__forceinline ~CMatrix4f | ( |  | ) |

Default destructor.

## Member Function Documentation

__forceinline CMatrix4f & operator= | ( | const CMatrix4f & | in_matrix4 | ) |

Assignment operator.

Parameters:

  | in_matrix4 | constant class object.

Returns:
  A reference to this object.

__forceinline CMatrix4f & operator *= | ( | const CMatrix4f & | in_matrix4 | ) |

Right-multiplies this CMatrix4f object by the specified matrix and stores the result into this matrix (this = this * in_matrix4).

Parameters:

  | in_matrix4 | matrix to be multiplied with.

Returns:
  A reference to this object.

__forceinline CMatrix4f & SetIdentity | ( |  | ) |

Sets this CMatrix4f object to the identity matrix (this = id).

Returns:
  A reference to this object.

__forceinline bool InvertInPlace | ( |  | ) |

Inverts this CMatrix4f object (if not singular) (this = this^-1).

Returns:
  true if this matrix has been inverted (not singular), else false.

__forceinline bool Invert | ( | const CMatrix4f & | in_matrix4 | ) |

Inverts this CMatrix4f object (if not singular) (this = this^-1).

Parameters:

  | in_matrix4 | matrix to be inverted.

Returns:
  true if this matrix has been inverted (not singular), else false.

__forceinline bool TransposeInverseInPlace | ( |  | ) |

Sets this CMatrix4f object to the transpose of the inverse of itself (if not singular) (this = Transpose(this^-1)).

Returns:
  true if this matrix has been inverted (not singular), else false.

__forceinline bool TransposeInverse | ( | const CMatrix4f & | in_matrix4 | ) |

Sets this CMatrix4f object to the transpose of the inverse of the input matrix (if not singular) (this = Transpose(in_matrix4^-1)).

Parameters:

  | in_matrix4 | matrix to be inversed and transposed.

Returns:
  true if this matrix has been inverted (not singular), else false.

__forceinline void TransposeInPlace | ( |  | ) |

Transposes this CMatrix4f object in place (this = Transpose(this)).

__forceinline void Transpose | ( | const CMatrix4f & | in_matrix4 | ) |

Transposes in_matrix and stores the result in this CMatrix4f object (this = Transpose(in_matrix4)).

Parameters:

  | in_matrix4 | matrix to be inversed and transposed.

__forceinline CMatrix4f & MulInPlace | ( | const CMatrix4f & | in_matrix4 | ) |

Right-multiplies this matrix by the matrix m and stores the result in this CMatrix4f object (this = this * in_matrix4).

Parameters:

  | in_matrix4 | matrix to be multiplied with.

Returns:
  A reference to this object.

__forceinline CMatrix4f & Mul | ( | const CMatrix4f & | in_matrix4A,
|  | const CMatrix4f & | in_matrix4B |
| ) |  |  |

Right-multiplies matrix A by matrix B and stores the result in this CMatrix4f object (this = in_matrix4A . in_matrix4B).

Parameters:

  | in_matrix4A | matrix
  | in_matrix4B | matrix

Returns:
  A reference to the object which contains the result of the multiplication.

__forceinline void Get | ( | float & | io_f00,
|  | float & | io_f01,
|  | float & | io_f02,
|  | float & | io_f03,
|  | float & | io_f10,
|  | float & | io_f11,
|  | float & | io_f12,
|  | float & | io_f13,
|  | float & | io_f20,
|  | float & | io_f21,
|  | float & | io_f22,
|  | float & | io_f23,
|  | float & | io_f30,
|  | float & | io_f31,
|  | float & | io_f32,
|  | float & | io_f33 |
| ) |  |  | const

Gets the 16 components of this matrix.

Parameters:

  | io_f00 | Value of this matrix[0,0].
  | io_f01 | Value of this matrix[0,1].
  | io_f02 | Value of this matrix[0,2].
  | io_f03 | Value of this matrix[0,3].
  | io_f10 | Value of this matrix[1,0].
  | io_f11 | Value of this matrix[1,1].
  | io_f12 | Value of this matrix[1,2].
  | io_f13 | Value of this matrix[1,3].
  | io_f20 | Value of this matrix[2,0].
  | io_f21 | Value of this matrix[2,1].
  | io_f22 | Value of this matrix[2,2].
  | io_f23 | Value of this matrix[2,3].
  | io_f30 | Value of this matrix[3,0].
  | io_f31 | Value of this matrix[3,1].
  | io_f32 | Value of this matrix[3,2].
  | io_f33 | Value of this matrix[3,3].

__forceinline void Set | ( | float | in_f00,
|  | float | in_f01,
|  | float | in_f02,
|  | float | in_f03,
|  | float | in_f10,
|  | float | in_f11,
|  | float | in_f12,
|  | float | in_f13,
|  | float | in_f20,
|  | float | in_f21,
|  | float | in_f22,
|  | float | in_f23,
|  | float | in_f30,
|  | float | in_f31,
|  | float | in_f32,
|  | float | in_f33 |
| ) |  |  |

Sets the 16 components of this matrix.

Parameters:

  | in_f00 | Value to set in this matrix[0,0].
  | in_f01 | Value to set in this matrix[0,1].
  | in_f02 | Value to set in this matrix[0,2].
  | in_f03 | Value to set in this matrix[0,3].
  | in_f10 | Value to set in this matrix[1,0].
  | in_f11 | Value to set in this matrix[1,1].
  | in_f12 | Value to set in this matrix[1,2].
  | in_f13 | Value to set in this matrix[1,3].
  | in_f20 | Value to set in this matrix[2,0].
  | in_f21 | Value to set in this matrix[2,1].
  | in_f22 | Value to set in this matrix[2,2].
  | in_f23 | Value to set in this matrix[2,3].
  | in_f30 | Value to set in this matrix[3,0].
  | in_f31 | Value to set in this matrix[3,1].
  | in_f32 | Value to set in this matrix[3,2].
  | in_f33 | Value to set in this matrix[3,3].

__forceinline float * Get | ( |  | ) |

Gets a pointer to the internal matrix.

Returns:
  Pointer to matrix.

__forceinline void Set | ( | const float | in_vals[4][4] | ) |

Sets the 16 components of this matrix.

Parameters:

  | in_vals | values for the matrix.

__forceinline float GetValue | ( | short | in_sRow,
|  | short | in_sCol |
| ) |  |  | const

Returns the (i,j)th value of this CMatrix4f object.

Parameters:

  | in_sRow | access to the i th row
  | in_sCol | access to the j th column

Returns:
  The (i,j)th value of this CMatrix4f object.

__forceinline void SetValue | ( | short | in_sRow,
|  | short | in_sCol,
|  | float | in_fVal |
| ) |  |  |

Sets the (i,j)th value of this CMatrix4f object.

Parameters:

  | in_sRow | access to the i th row
  | in_sCol | access to the j th column
  | in_fVal | new value

__forceinline bool EpsilonEquals | ( | const CMatrix4f & | in_matrix4,
|  | float | in_fEpsilon |
| ) |  |  | const

Tests the equality of this CMatrix4f object with the specified matrix, with a tolerance of Epsilon.

Parameters:

  | in_matrix4 | Operand matrix.
  | in_fEpsilon | Error margin Possible Values: [0, +INF[ should be a positive value

Returns:
  true if equal else false.

__forceinline bool Equals | ( | const CMatrix4f & | in_matrix4 | ) | const

Tests the strict equality of this CMatrix4f object with the specified matrix.

Parameters:

  | in_matrix4 | Operand matrix.

Returns:
  true if equal else false.

__forceinline bool operator== | ( | const CMatrix4f & | in_matrix4 | ) | const

Equality operator. Tests the strict equality of this CMatrix4f object with the specified matrix.

Parameters:

  | in_matrix4 | Operand matrix4.

Returns:
  true if equal else false.

See also:
  CMatrix4f::Equals

__forceinline bool operator!= | ( | const CMatrix4f & | in_matrix4 | ) | const

Inequality operator. Tests the strict inequality of this CMatrix4f object with the specified matrix.

Parameters:

  | in_matrix4 | Operand matrix.

Returns:
  true if equal else false.

See also:
  CMatrix4f::Equals

__forceinline bool operator< | ( | const CMatrix4f & | in_matrix4 | ) | const

Less than operator. Performs a comparison with a specified CMatrix4f to determine if this CMatrix4f is less than the specified CMatrix4f. The comparison is arbitrary and not geometrically meaningful, it's only purpose is to make CMatrix4f compliant with stl for sorting operations.

Returns:
  true if this CMatrix4f is less than the specified CMatrix4f, false otherwise.

Since:
  7.5

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

- xsi_matrix4f.h