glm.h#

Includes#

  • glm/glm.hpp

  • glm/gtc/matrix_access.hpp

  • glm/gtc/matrix_inverse.hpp

  • glm/gtc/quaternion.hpp

  • glm/gtc/type_ptr.hpp

  • glm/gtx/euler_angles.hpp

  • glm/gtx/fast_square_root.hpp

  • glm/gtx/fast_trigonometry.hpp

  • glm/gtx/norm.hpp

  • glm/gtx/transform.hpp

  • glm/simd/matrix.h

  • glm/simd/trigonometric.h

  • sstream

Included By#

Namespaces#

Functions#

Defines#

Source Code#

#pragma once
#define GLM_ENABLE_EXPERIMENTAL

#include "glm/glm.hpp"
#include "glm/gtc/type_ptr.hpp"
#include "glm/gtc/matrix_inverse.hpp"
#include "glm/gtc/matrix_access.hpp"
#include "glm/gtc/quaternion.hpp"
#include "glm/gtx/transform.hpp"
#include "glm/gtx/norm.hpp"
#include "glm/simd/matrix.h"
#include "glm/simd/trigonometric.h"
#include "glm/gtx/fast_trigonometry.hpp"
#include "glm/gtx/euler_angles.hpp"
#include "glm/gtx/fast_square_root.hpp"

#include <sstream>

namespace glm {
template<glm::length_t L, typename T, glm::qualifier Q = glm::packed_highp>
inline std::string to_string(const glm::vec<L, T, Q>& vec)
{
    std::stringstream str;
    str << "[" << vec[0];
    for (uint32_t i = 1; i < L; ++i) { str << "," << vec[i]; }
    str << "]";
    return str.str();
}
template<glm::length_t lC, glm::length_t lR, typename T, glm::qualifier Q = glm::packed_highp>
inline std::string to_string(const glm::mat<lC, lR, T, Q>& mat)
{
    std::stringstream str;
    str << "[" << to_string(mat[0]);
    for (uint32_t j = 1; j < lC; ++j) { str << "," << to_string(mat[j]); }
    str << "]";
    return str.str();
}
} // namespace glm