//
// GLM External templates generator script version 0.1 for GLM core
//
// atomic types: ['unsigned char', 'unsigned short', 'unsigned int', 'signed char', 'signed short', 'signed int', 'float', 'double']
// GLSL vector types: ['tvec2', 'tvec3', 'tvec4']
// GLSL matrix types: ['tmat2x2', 'tmat2x3', 'tmat2x4', 'tmat3x2', 'tmat3x3', 'tmat3x4', 'tmat4x2', 'tmat4x3', 'tmat4x4']
//

#include <glm/glm.hpp>

namespace glm {
namespace detail {

//
// tvec2 type explicit instantiation
//
template struct tvec2<unsigned char>;
template struct tvec2<unsigned short>;
template struct tvec2<unsigned int>;
template struct tvec2<signed char>;
template struct tvec2<signed short>;
template struct tvec2<signed int>;
template struct tvec2<float>;
template struct tvec2<double>;


//
// tvec3 type explicit instantiation
//
template struct tvec3<unsigned char>;
template struct tvec3<unsigned short>;
template struct tvec3<unsigned int>;
template struct tvec3<signed char>;
template struct tvec3<signed short>;
template struct tvec3<signed int>;
template struct tvec3<float>;
template struct tvec3<double>;


//
// tvec4 type explicit instantiation
//
template struct tvec4<unsigned char>;
template struct tvec4<unsigned short>;
template struct tvec4<unsigned int>;
template struct tvec4<signed char>;
template struct tvec4<signed short>;
template struct tvec4<signed int>;
template struct tvec4<float>;
template struct tvec4<double>;


//
// tmat2x2 type explicit instantiation
//
template struct tmat2x2<unsigned char>;
template struct tmat2x2<unsigned short>;
template struct tmat2x2<unsigned int>;
template struct tmat2x2<signed char>;
template struct tmat2x2<signed short>;
template struct tmat2x2<signed int>;
template struct tmat2x2<float>;
template struct tmat2x2<double>;


//
// tmat2x3 type explicit instantiation
//
template struct tmat2x3<unsigned char>;
template struct tmat2x3<unsigned short>;
template struct tmat2x3<unsigned int>;
template struct tmat2x3<signed char>;
template struct tmat2x3<signed short>;
template struct tmat2x3<signed int>;
template struct tmat2x3<float>;
template struct tmat2x3<double>;


//
// tmat2x4 type explicit instantiation
//
template struct tmat2x4<unsigned char>;
template struct tmat2x4<unsigned short>;
template struct tmat2x4<unsigned int>;
template struct tmat2x4<signed char>;
template struct tmat2x4<signed short>;
template struct tmat2x4<signed int>;
template struct tmat2x4<float>;
template struct tmat2x4<double>;


//
// tmat3x2 type explicit instantiation
//
template struct tmat3x2<unsigned char>;
template struct tmat3x2<unsigned short>;
template struct tmat3x2<unsigned int>;
template struct tmat3x2<signed char>;
template struct tmat3x2<signed short>;
template struct tmat3x2<signed int>;
template struct tmat3x2<float>;
template struct tmat3x2<double>;


//
// tmat3x3 type explicit instantiation
//
template struct tmat3x3<unsigned char>;
template struct tmat3x3<unsigned short>;
template struct tmat3x3<unsigned int>;
template struct tmat3x3<signed char>;
template struct tmat3x3<signed short>;
template struct tmat3x3<signed int>;
template struct tmat3x3<float>;
template struct tmat3x3<double>;


//
// tmat3x4 type explicit instantiation
//
template struct tmat3x4<unsigned char>;
template struct tmat3x4<unsigned short>;
template struct tmat3x4<unsigned int>;
template struct tmat3x4<signed char>;
template struct tmat3x4<signed short>;
template struct tmat3x4<signed int>;
template struct tmat3x4<float>;
template struct tmat3x4<double>;


//
// tmat4x2 type explicit instantiation
//
template struct tmat4x2<unsigned char>;
template struct tmat4x2<unsigned short>;
template struct tmat4x2<unsigned int>;
template struct tmat4x2<signed char>;
template struct tmat4x2<signed short>;
template struct tmat4x2<signed int>;
template struct tmat4x2<float>;
template struct tmat4x2<double>;


//
// tmat4x3 type explicit instantiation
//
template struct tmat4x3<unsigned char>;
template struct tmat4x3<unsigned short>;
template struct tmat4x3<unsigned int>;
template struct tmat4x3<signed char>;
template struct tmat4x3<signed short>;
template struct tmat4x3<signed int>;
template struct tmat4x3<float>;
template struct tmat4x3<double>;


//
// tmat4x4 type explicit instantiation
//
template struct tmat4x4<unsigned char>;
template struct tmat4x4<unsigned short>;
template struct tmat4x4<unsigned int>;
template struct tmat4x4<signed char>;
template struct tmat4x4<signed short>;
template struct tmat4x4<signed int>;
template struct tmat4x4<float>;
template struct tmat4x4<double>;

} // namespace detail
} // namespace glm
