94 Mat4& operator =(const
Mat4& _m) noexcept;
106 const
Mat4& null() noexcept;
115 const
Mat4& identity() noexcept;
121 Mat4 operator*(const
Mat4 &_m) const noexcept;
127 const
Mat4& operator*=(const
Mat4 &_m) noexcept;
133 Mat4 operator+(const
Mat4 &_m) const noexcept;
139 const
Mat4& operator+=(const
Mat4 &_m) noexcept;
145 Mat4 operator*(const
Real _i) const noexcept;
151 const
Mat4& operator*=(const
Real _i) noexcept;
162 void rotateX(const
Real _deg) noexcept;
168 void rotateY(const
Real _deg) noexcept;
175 void rotateZ(const
Real _deg) noexcept;
189 void translate(const
Real _x, const
Real _y, const
Real _z) noexcept;
194 Real determinant() const noexcept;
202 void subMatrix3x3(const
int _i,const
int _j,
Real o_mat[]) const noexcept;
208 void as3x3Array(
Real _d[9]) const noexcept;
214 Mat4 inverse() noexcept;
225 Vec4 operator * (const
Vec4 &_v) const noexcept;
234 void euler(const
Real _angle, const
Real _x, const
Real _y, const
Real _z) noexcept;
239 Real * openGL() noexcept{
return &m_openGL[0];}
244 Mat4 Adjacent(
const Mat4 &_mat) noexcept;
249 Mat4 Adjacent() noexcept;
254 Vec3 getLeftVector()
const noexcept;
259 Vec3 getRightVector()
const noexcept;
264 Vec3 getUpVector()
const noexcept;
269 Vec3 getDownVector()
const noexcept;
274 Vec3 getForwardVector()
const noexcept;
279 Vec3 getBackVector()
const noexcept;
300 std::array<Real,16> m_openGL={{
337 for(
size_t i=0; i<_m1.
m_openGL.size(); ++i)
bool operator==(const ngl::Mat3 &_m1, const ngl::Mat3 &_m2)
GLsizei GLboolean transpose
Real m_11
individual matrix element maps to m_m[1][1] or m_openGL[5]
Real m_21
individual matrix element maps to m_m[2][1] or m_openGL[9]
GLenum GLenum GLenum GLenum GLenum scale
simple Vector class for OpenGL graphics, contains overloaded operators for most math functions...
main definition of types and namespace
Real m_22
individual matrix element maps to m_m[2][2] or m_openGL[10]
Real m_12
individual matrix element maps to m_m[1][2] or m_openGL[6]
Real m_31
individual matrix element maps to m_m[3][1] or m_openGL[13]
simple Vec3 encapsulates a 3 float object like glsl vec3 but not maths use the Vec3 class for maths a...
implementation files for RibExport class
Real m_30
individual matrix element maps to m_m[3][0] or m_openGL[12]
PRECISION Real
create a variable called Real which is the main data type we use (GLfloat for most cases) ...
#define FCompare(a, b)
FCompare macro used for floating point comparision functions.
Real m_02
individual matrix element maps to m_m[0][2] or m_openGL[2]
simple camera class to allow movement in an opengl scene. a lot of this stuff is from the HILL book C...
Real m_01
individual matrix element maps to m_m[0][1] or m_openGL[1]
Real m_00
individual matrix element maps to m_m[0][0] or m_openGL[0]
Real m_10
individual matrix element maps to m_m[1][0] or m_openGL[4]
Real m_13
individual matrix element maps to m_m[1][3] or m_openGL[7]
Real m_23
individual matrix element maps to m_m[2][3] or m_openGL[11]
Real m_32
individual matrix element maps to m_m[3][2] or m_openGL[14]
Matrix Class to do simple matrix operations included operator overloaded functions for maths and matr...
std::array< Real, 16 > m_openGL
The matrix in m_openGL 16 Real array format usefull for OpenGL fv formats mapped to m_m[][] elements ...
Real m_20
individual matrix element maps to m_m[2][0] or m_openGL[8]
Real m_03
individual matrix element maps to m_m[0][3] or m_openGL[3]
Real m_33
individual matrix element maps to m_m[3][3] or m_openGL[15]