From 2877f4eda3d1b0c7431039e3142ecf1a282a34b1 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Tue, 21 Aug 2018 20:40:38 +0500 Subject: Update glm to 0.9.9.0 --- external/include/glm/gtx/scalar_multiplication.hpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'external/include/glm/gtx/scalar_multiplication.hpp') diff --git a/external/include/glm/gtx/scalar_multiplication.hpp b/external/include/glm/gtx/scalar_multiplication.hpp index 695e841..b73edf6 100644 --- a/external/include/glm/gtx/scalar_multiplication.hpp +++ b/external/include/glm/gtx/scalar_multiplication.hpp @@ -2,7 +2,9 @@ /// @file glm/gtx/scalar_multiplication.hpp /// @author Joshua Moerman /// -/// @brief Enables scalar multiplication for all types +/// Include to use the features of this extension. +/// +/// Enables scalar multiplication for all types /// /// Since GLSL is very strict about types, the following (often used) combinations do not work: /// double * vec4 @@ -14,6 +16,10 @@ #include "../detail/setup.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." +#endif + #if !GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC) # error "GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC" #endif @@ -26,28 +32,28 @@ namespace glm { - template + template using return_type_scalar_multiplication = typename std::enable_if< !std::is_same::value // T may not be a float && std::is_arithmetic::value, Vec // But it may be an int or double (no vec3 or mat3, ...) >::type; #define GLM_IMPLEMENT_SCAL_MULT(Vec) \ - template \ + template \ return_type_scalar_multiplication \ - operator*(T const & s, Vec rh){ \ + operator*(T const& s, Vec rh){ \ return rh *= static_cast(s); \ } \ \ - template \ + template \ return_type_scalar_multiplication \ - operator*(Vec lh, T const & s){ \ + operator*(Vec lh, T const& s){ \ return lh *= static_cast(s); \ } \ \ - template \ + template \ return_type_scalar_multiplication \ - operator/(Vec lh, T const & s){ \ + operator/(Vec lh, T const& s){ \ return lh *= 1.0f / s; \ } -- cgit v1.2.3