#ifndef MATH_MAT4_H #define MATH_MAT4_H #include #include "math/math_vector.h" namespace engine::math { class Mat4 { public: static Mat4 idty(); static Mat4 translate(MathVector3 v); static Mat4 scale(float fac); static Mat4 rot_x(float a); static Mat4 rot_y(float a); static Mat4 rot_z(float a); static Mat4 projection(float aspect_ratio, float min_z, float max_z); std::array values; Mat4 operator+(); Mat4 operator-(); Mat4 operator+(Mat4 m); Mat4 operator-(Mat4 m); Mat4 operator*(Mat4 m); MathVector4 operator*(MathVector4 v); std::array to_vecs(); }; Mat4 operator*(float fac, Mat4 m); } #endif // MATH_MAT4_H