#include "../library/glm/vec2.hpp"
#include "../library/glm/vec3.hpp"
#include "../library/glm/vec4.hpp"
#include "../library/glm/mat4x4.hpp"
#include "../define.h"

namespace sleek
{
    namespace math
    {
        template<typename T>
        using vec2  = glm::tvec2<T, GLM_Precision>;
        using vec2f = vec2<f32>;
        using vec2i = vec2<s32>;
        using vec2u = vec2<u32>;

        template<typename T>
        using vec3  = glm::tvec3<T, GLM_Precision>;
        using vec3f = vec3<f32>;
        using vec3i = vec3<s32>;
        using vec3u = vec3<u32>;

        template<typename T>
        using vec4  = glm::tvec3<T, GLM_Precision>;
        using vec4f = vec4<f32>;
        using vec4i = vec4<s32>;
        using vec4u = vec4<u32>;

        template<typename T>
        using mat4 = glm::tmat4x4<T, GLM_Precision>;
        using mat4f = mat4<f32>;
        using mat4i = mat4<s32>;
        using mat4u = mat4<u32>;

        template<typename T>
        using quat  = glm::tquat<T, GLM_Precision>;
        using quatf = quat<f32>;
        using quati = quat<s32>;
        using quatu = quat<u32>;
    }
}