16#ifndef AEONGAMES_MATRIX3X3_H
17#define AEONGAMES_MATRIX3X3_H
25#include <initializer_list>
44 DLL
Matrix3x3 (
const float*
const aMatrix );
48 DLL
Matrix3x3 (
const std::initializer_list<const float> aList );
74 DLL
const float operator[] (
size_t aIndex )
const;
116 static_assert (
sizeof (
Matrix3x3 ) == (
sizeof ( float ) * 9 ),
"Matrix3x3 is not 9 floats wide." );
3 by 3 matrix in colum mayor order.
DLL const Matrix3x3 GetInvertedMatrix3x3()
Get the inverted matrix.
DLL Matrix3x3 & operator*=(const Matrix3x3 &lhs)
Multiply this matrix by another matrix.
DLL Matrix3x3()
Default constructor.
DLL const float *const GetMatrix3x3() const
Get a pointer to the internal matrix data.
static DLL const Matrix3x3 GetRotationMatrix(float angle, float x, float y, float z)
Constructs the rotation matrix defined by the axis-angle provided.
DLL const float operator[](size_t aIndex) const
Access a matrix element by index.
float mMatrix[9]
Lineal row mayor matrix.
DLL Matrix3x3 & Invert()
Invert this matrix in place.
DLL Matrix3x3 & Rotate(float angle, float x, float y, float z)
Apply a rotation to this matrix.
<- This is here just for the literals
DLL const Matrix3x3 operator*(const Matrix3x3 &lhs, const Matrix3x3 &rhs)
Multiplies two 3x3 matrices. Multiplies two 3x3 matrices.
DLL const Matrix3x3 Abs(const Matrix3x3 &aMatrix3x3)
Compute the element-wise absolute value of a matrix.
DLL const bool operator==(const Matrix3x3 &lhs, const Matrix3x3 &rhs)
Compare two 3x3 matrices for equality.