81 const Mat3& null() noexcept;
90 const Mat3& identity() noexcept;
102 const Mat3& operator*=(
const Mat3 &_m ) noexcept;
108 Mat3 operator+(
const Mat3 &_m )
const noexcept;
114 const Mat3& operator+=(
const Mat3 &_m ) noexcept;
126 const Mat3& operator*=(
Real _i ) noexcept;
143 void rotateX(
Real _deg) noexcept;
149 void rotateY(
Real _deg) noexcept;
156 void rotateZ(
Real _deg ) noexcept;
169 Real determinant()
const noexcept;
174 Mat3 inverse() noexcept;
193 Vec3 getLeftVector()
const noexcept;
198 Vec3 getRightVector()
const noexcept;
203 Vec3 getUpVector()
const noexcept;
208 Vec3 getDownVector()
const noexcept;
213 Vec3 getForwardVector()
const noexcept;
218 Vec3 getBackVector()
const noexcept;
228 #ifndef BUILDING_DOCS 243 std::array<Real,9> m_openGL={{
248 #ifndef BUILDING_DOCS 289 #ifndef BUILDING_DOCS 299 for(
size_t i=0; i<_m1.
m_openGL.size(); ++i)
bool operator==(const ngl::Mat3 &_m1, const ngl::Mat3 &_m2)
Mat3 basic 3x3 matrix for certain glsl ops.
GLsizei GLboolean transpose
Real m_00
individual matrix element maps to m_m[0][0] or m_openGL[0]
GLenum GLenum GLenum GLenum GLenum scale
main definition of types and namespace
Real m_12
individual matrix element maps to m_m[1][2] or m_openGL[6]
std::array< Real, 9 > m_openGL
The matrix in m_openGL 16 Real array format usefull for OpenGL fv formats mapped to m_m[][] elements ...
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
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.
simple camera class to allow movement in an opengl scene. a lot of this stuff is from the HILL book C...
Real m_11
individual matrix element maps to m_m[1][1] or m_openGL[5]
Real * openGL() noexcept
accesor to the openGL matrix
Real m_10
individual matrix element maps to m_m[1][0] or m_openGL[4]
Vec2 operator*(Real _k, const Vec2 &_v) noexcept
scalar * vector operator
Real m_20
individual matrix element maps to m_m[2][0] or m_openGL[8]
Real m_21
individual matrix element maps to m_m[2][1] or m_openGL[9]
Matrix Class to do simple matrix operations included operator overloaded functions for maths and matr...
Real m_02
individual matrix element maps to m_m[0][2] or m_openGL[2]
Real m_01
individual matrix element maps to m_m[0][1] or m_openGL[1]
Real m_22
individual matrix element maps to m_m[2][2] or m_openGL[10]