diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index 3ab25ce6..1ee2a4b2 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -94,31 +94,31 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL tvec1() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tvec1(tvec1 const & v) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tvec1() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1 const & v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec1(tvec1 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1 const & v); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tvec1(ctor); - GLM_FUNC_DECL explicit tvec1(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(T scalar); // -- Conversion vector constructors -- /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec2 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec2 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec3 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec4 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec1 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec1 const & v); // -- Swizzle constructors -- diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index d582c05f..84f05add 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -94,37 +94,37 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL tvec2() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tvec2(tvec2 const & v) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tvec2() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2 const& v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec2(tvec2 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2 const& v); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tvec2(ctor); - GLM_FUNC_DECL explicit tvec2(T scalar); - GLM_FUNC_DECL tvec2(T s1, T s2); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2); // -- Conversion constructors -- /// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec2(A x, B y); + GLM_FUNC_DECL GLM_CONSTEXPR tvec2(A x, B y); template - GLM_FUNC_DECL tvec2(tvec1 const & v1, tvec1 const & v2); + GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec1 const & v1, tvec1 const & v2); // -- Conversion vector constructors -- /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec3 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec4 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec2 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec2 const & v); // -- Swizzle constructors -- diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index 8203d886..5c3829ff 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -95,46 +95,46 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL tvec3() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tvec3(tvec3 const & v) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tvec3() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3 const & v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec3(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3 const & v); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tvec3(ctor); - GLM_FUNC_DECL explicit tvec3(T scalar); - GLM_FUNC_DECL tvec3(T a, T b, T c); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c); // -- Conversion scalar constructors -- /// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec3(A a, B b, C c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, B b, C c); template - GLM_FUNC_DECL tvec3(tvec1 const & a, tvec1 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1 const & a, tvec1 const & b, tvec1 const & c); // -- Conversion vector constructors -- /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec3(tvec2 const & a, B b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2 const & a, B b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec3(tvec2 const & a, tvec1 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2 const & a, tvec1 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec3(A a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, tvec2 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec3(tvec1 const & a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1 const & a, tvec2 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec3(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec4 const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec3(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec3 const & v); // -- Swizzle constructors -- diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index 0457882c..0be564d7 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -150,64 +150,64 @@ namespace detail // -- Implicit basic constructors -- - GLM_FUNC_DECL tvec4() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tvec4(tvec4 const& v) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tvec4() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4 const& v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec4(tvec4 const& v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4 const& v); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tvec4(ctor); - GLM_FUNC_DECL explicit tvec4(T scalar); - GLM_FUNC_DECL tvec4(T a, T b, T c, T d); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec4(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec4(T scalar); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(T a, T b, T c, T d); // -- Conversion scalar constructors -- /// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(A a, B b, C c, D d); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, C c, D d); template - GLM_FUNC_DECL tvec4(tvec1 const& a, tvec1 const& b, tvec1 const& c, tvec1 const& d); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1 const& a, tvec1 const& b, tvec1 const& c, tvec1 const& d); // -- Conversion vector constructors -- /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec2 const & a, B b, C c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2 const & a, B b, C c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec2 const & a, tvec1 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2 const & a, tvec1 const & b, tvec1 const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(A a, tvec2 const & b, C c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec2 const & b, C c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec1 const & a, tvec2 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1 const & a, tvec2 const & b, tvec1 const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(A a, B b, tvec2 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, tvec2 const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec1 const & a, tvec1 const & b, tvec2 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1 const & a, tvec1 const & b, tvec2 const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec3 const & a, B b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3 const & a, B b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec3 const & a, tvec1 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3 const & a, tvec1 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(A a, tvec3 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec3 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec1 const & a, tvec3 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1 const & a, tvec3 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL tvec4(tvec2 const & a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2 const & a, tvec2 const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_EXPLICIT tvec4(tvec4 const& v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec4(tvec4 const& v); // -- Swizzle constructors -- diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 0832f7f3..e1d9ff03 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -82,21 +82,21 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL tquat() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tquat(tquat const & q) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tquat() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat const & q) GLM_DEFAULT; template - GLM_FUNC_DECL tquat(tquat const & q); + GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat const & q); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tquat(ctor); - GLM_FUNC_DECL tquat(T const & s, tvec3 const & v); - GLM_FUNC_DECL tquat(T const & w, T const & x, T const & y, T const & z); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tquat(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & s, tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & w, T const & x, T const & y, T const & z); // -- Conversion constructors -- template - GLM_FUNC_DECL GLM_EXPLICIT tquat(tquat const & q); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat const & q); /// Explicit conversion operators # if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS @@ -110,12 +110,12 @@ namespace glm /// @param v A second normalized axis /// @see gtc_quaternion /// @see http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors - GLM_FUNC_DECL tquat(tvec3 const & u, tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tquat(tvec3 const & u, tvec3 const & v); /// Build a quaternion from euler angles (pitch, yaw, roll), in radians. - GLM_FUNC_DECL GLM_EXPLICIT tquat(tvec3 const & eulerAngles); - GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat3x3 const & m); - GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat4x4 const & m); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tvec3 const & eulerAngles); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tmat3x3 const & m); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tmat4x4 const & m); // -- Unary arithmetic operators -- diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index cddf1fe6..32c49dda 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -81,25 +81,25 @@ namespace glm // -- Implicit basic constructors -- - GLM_FUNC_DECL tdualquat() GLM_DEFAULT_CTOR; - GLM_FUNC_DECL tdualquat(tdualquat const & d) GLM_DEFAULT; + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR; + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat const & d) GLM_DEFAULT; template - GLM_FUNC_DECL tdualquat(tdualquat const & d); + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat const & d); // -- Explicit basic constructors -- - GLM_FUNC_DECL explicit tdualquat(ctor); - GLM_FUNC_DECL tdualquat(tquat const & real); - GLM_FUNC_DECL tdualquat(tquat const & orientation, tvec3 const & translation); - GLM_FUNC_DECL tdualquat(tquat const & real, tquat const & dual); + GLM_FUNC_DECL GLM_CONSTEXPR explicit tdualquat(ctor); + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat const & real); + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat const & orientation, tvec3 const & translation); + GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat const & real, tquat const & dual); // -- Conversion constructors -- template - GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tdualquat const & q); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat const & q); - GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4 const & holder_mat); - GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4 const & aug_mat); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tmat2x4 const & holder_mat); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tmat3x4 const & aug_mat); // -- Unary arithmetic operators --