diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index 0418fbcc..954f3f2a 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -96,13 +96,13 @@ namespace glm /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec2 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<2, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<3, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<4, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index a9547887..e11ed4ee 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -42,25 +42,25 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec1 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<1, U, Q> const & v) : x(static_cast(v.x)) {} template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec2 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<2, U, Q> const & v) : x(static_cast(v.x)) {} template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec3 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<3, U, Q> const & v) : x(static_cast(v.x)) {} template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec4 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<4, U, Q> const & v) : x(static_cast(v.x)) {} @@ -93,7 +93,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator=(tvec<1, U, P> const & v) { this->x = static_cast(v.x); return *this; @@ -109,7 +109,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator+=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator+=(tvec<1, U, P> const & v) { this->x += static_cast(v.x); return *this; @@ -125,7 +125,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator-=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator-=(tvec<1, U, P> const & v) { this->x -= static_cast(v.x); return *this; @@ -141,7 +141,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator*=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator*=(tvec<1, U, P> const & v) { this->x *= static_cast(v.x); return *this; @@ -157,7 +157,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator/=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator/=(tvec<1, U, P> const & v) { this->x /= static_cast(v.x); return *this; @@ -207,7 +207,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator%=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator%=(tvec<1, U, P> const & v) { this->x %= static_cast(v.x); return *this; @@ -223,7 +223,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator&=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator&=(tvec<1, U, P> const & v) { this->x &= static_cast(v.x); return *this; @@ -239,7 +239,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator|=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator|=(tvec<1, U, P> const & v) { this->x |= U(v.x); return *this; @@ -255,7 +255,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator^=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator^=(tvec<1, U, P> const & v) { this->x ^= static_cast(v.x); return *this; @@ -271,7 +271,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator<<=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator<<=(tvec<1, U, P> const & v) { this->x <<= static_cast(v.x); return *this; @@ -287,7 +287,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator>>=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator>>=(tvec<1, U, P> const & v) { this->x >>= static_cast(v.x); return *this; @@ -545,14 +545,14 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec1 operator&&(tvec1 const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<1, bool, P> operator&&(tvec<1, bool, P> const & v1, tvec<1, bool, P> const & v2) { - return tvec1(v1.x && v2.x); + return tvec<1, bool, P>(v1.x && v2.x); } template - GLM_FUNC_QUALIFIER tvec1 operator||(tvec1 const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<1, bool, P> operator||(tvec<1, bool, P> const & v1, tvec<1, bool, P> const & v2) { - return tvec1(v1.x || v2.x); + return tvec<1, bool, P>(v1.x || v2.x); } }//namespace glm diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index 3b7aa9bd..8bb61b5f 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -22,7 +22,7 @@ namespace glm typedef T value_type; typedef tvec type; - typedef tvec2 bool_type; + typedef tvec<2, bool, P> bool_type; // -- Data -- @@ -86,7 +86,7 @@ namespace glm GLM_FUNC_DECL GLM_CONSTEXPR tvec() GLM_DEFAULT_CTOR; GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec const& v) GLM_DEFAULT; template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2 const& v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, T, Q> const& v); // -- Explicit basic constructors -- @@ -100,20 +100,20 @@ namespace glm template GLM_FUNC_DECL GLM_CONSTEXPR tvec(A x, B y); template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1 const & v1, tvec1 const & v2); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, P> const & v1, tvec<1, B, P> 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_CONSTEXPR GLM_EXPLICIT tvec(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<3, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<4, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec2 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<2, U, Q> const & v); // -- Swizzle constructors -- # if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED) @@ -129,31 +129,31 @@ namespace glm GLM_FUNC_DECL tvec& operator=(tvec const & v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec& operator=(tvec2 const & v); + GLM_FUNC_DECL tvec& operator=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec& operator+=(U scalar); template - GLM_FUNC_DECL tvec& operator+=(tvec1 const & v); + GLM_FUNC_DECL tvec& operator+=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec& operator+=(tvec2 const & v); + GLM_FUNC_DECL tvec& operator+=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec& operator-=(U scalar); template - GLM_FUNC_DECL tvec& operator-=(tvec1 const & v); + GLM_FUNC_DECL tvec& operator-=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec& operator-=(tvec2 const & v); + GLM_FUNC_DECL tvec& operator-=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec& operator*=(U scalar); template - GLM_FUNC_DECL tvec& operator*=(tvec1 const & v); + GLM_FUNC_DECL tvec& operator*=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec& operator*=(tvec2 const & v); + GLM_FUNC_DECL tvec& operator*=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec& operator/=(U scalar); template - GLM_FUNC_DECL tvec& operator/=(tvec1 const & v); + GLM_FUNC_DECL tvec& operator/=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec& operator/=(tvec2 const & v); + GLM_FUNC_DECL tvec& operator/=(tvec<2, U, P> const & v); // -- Increment and decrement operators -- @@ -167,217 +167,217 @@ namespace glm template GLM_FUNC_DECL tvec & operator%=(U scalar); template - GLM_FUNC_DECL tvec & operator%=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator%=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator%=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator%=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec & operator&=(U scalar); template - GLM_FUNC_DECL tvec & operator&=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator&=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator&=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator&=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec & operator|=(U scalar); template - GLM_FUNC_DECL tvec & operator|=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator|=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator|=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator|=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec & operator^=(U scalar); template - GLM_FUNC_DECL tvec & operator^=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator^=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator^=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator^=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec & operator<<=(U scalar); template - GLM_FUNC_DECL tvec & operator<<=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator<<=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator<<=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator<<=(tvec<2, U, P> const & v); template GLM_FUNC_DECL tvec & operator>>=(U scalar); template - GLM_FUNC_DECL tvec & operator>>=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator>>=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator>>=(tvec2 const & v); + GLM_FUNC_DECL tvec & operator>>=(tvec<2, U, P> const & v); }; // -- Unary operators -- template - GLM_FUNC_DECL tvec2 operator+(tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator-(tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v); // -- Binary operators -- template - GLM_FUNC_DECL tvec2 operator+(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator+(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator+(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator+(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator+(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator+(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator-(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator-(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator-(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator-(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator-(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator-(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator*(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator*(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator*(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator*(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator*(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator*(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator/(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator/(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator/(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator/(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator/(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator/(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator%(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator%(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator%(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator%(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator%(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator%(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator&(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator&(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator&(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator&(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator&(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator&(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator|(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator|(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator|(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator|(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator|(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator|(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator^(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator^(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator^(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator^(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator^(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator^(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator<<(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator<<(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator<<(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator<<(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator<<(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator<<(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator>>(tvec2 const & v, T scalar); + GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec2 operator>>(tvec2 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator>>(T scalar, tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator>>(T scalar, tvec<2, T, P> const & v); template - GLM_FUNC_DECL tvec2 operator>>(tvec1 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator>>(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator~(tvec2 const & v); + GLM_FUNC_DECL tvec<2, T, P> operator~(tvec<2, T, P> const & v); // -- Boolean operators -- template - GLM_FUNC_DECL bool operator==(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL bool operator==(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL bool operator!=(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL bool operator!=(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2); template - GLM_FUNC_DECL tvec2 operator&&(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, bool, P> operator&&(tvec<2, bool, P> const & v1, tvec<2, bool, P> const & v2); template - GLM_FUNC_DECL tvec2 operator||(tvec2 const & v1, tvec2 const & v2); + GLM_FUNC_DECL tvec<2, bool, P> operator||(tvec<2, bool, P> const & v1, tvec<2, bool, P> const & v2); }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index 01b4a680..f7b4fede 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -54,7 +54,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec1 const & a, tvec1 const & b) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec<1, A, P> const & a, tvec<1, B, P> const & b) : x(static_cast(a.x)) , y(static_cast(b.x)) {} @@ -70,14 +70,14 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec3 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec<3, U, Q> const & v) : x(static_cast(v.x)) , y(static_cast(v.y)) {} template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec4 const & v) + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec<4, U, Q> const & v) : x(static_cast(v.x)) , y(static_cast(v.y)) {} @@ -130,7 +130,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator+=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator+=(tvec<1, U, P> const & v) { this->x += static_cast(v.x); this->y += static_cast(v.x); @@ -157,7 +157,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator-=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator-=(tvec<1, U, P> const & v) { this->x -= static_cast(v.x); this->y -= static_cast(v.x); @@ -184,7 +184,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator*=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator*=(tvec<1, U, P> const & v) { this->x *= static_cast(v.x); this->y *= static_cast(v.x); @@ -211,7 +211,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator/=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator/=(tvec<1, U, P> const & v) { this->x /= static_cast(v.x); this->y /= static_cast(v.x); @@ -274,7 +274,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator%=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator%=(tvec<1, U, P> const & v) { this->x %= static_cast(v.x); this->y %= static_cast(v.x); @@ -301,7 +301,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator&=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator&=(tvec<1, U, P> const & v) { this->x &= static_cast(v.x); this->y &= static_cast(v.x); @@ -328,7 +328,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator|=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator|=(tvec<1, U, P> const & v) { this->x |= static_cast(v.x); this->y |= static_cast(v.x); @@ -355,7 +355,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator^=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator^=(tvec<1, U, P> const & v) { this->x ^= static_cast(v.x); this->y ^= static_cast(v.x); @@ -382,7 +382,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator<<=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator<<=(tvec<1, U, P> const & v) { this->x <<= static_cast(v.x); this->y <<= static_cast(v.x); @@ -409,7 +409,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator>>=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator>>=(tvec<1, U, P> const & v) { this->x >>= static_cast(v.x); this->y >>= static_cast(v.x); @@ -452,7 +452,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x + v2.x, @@ -468,7 +468,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x + v2.x, @@ -492,7 +492,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x - v2.x, @@ -508,7 +508,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x - v2.x, @@ -532,7 +532,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x * v2.x, @@ -548,7 +548,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x * v2.x, @@ -572,7 +572,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x / v2.x, @@ -588,7 +588,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x / v2.x, @@ -614,7 +614,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x % v2.x, @@ -630,7 +630,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x % v2.x, @@ -654,7 +654,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x & v2.x, @@ -670,7 +670,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x & v2.x, @@ -694,7 +694,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x | v2.x, @@ -710,7 +710,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x | v2.x, @@ -734,7 +734,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x ^ v2.x, @@ -750,7 +750,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x ^ v2.x, @@ -774,7 +774,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x << v2.x, @@ -790,7 +790,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x << v2.x, @@ -814,7 +814,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<2, T, P>( v1.x >> v2.x, @@ -830,7 +830,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec1 const & v1, tvec<2, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2) { return tvec<2, T, P>( v1.x >> v2.x, diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index aa9ef9eb..755f4c32 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -22,7 +22,7 @@ namespace glm typedef T value_type; typedef tvec type; - typedef tvec3 bool_type; + typedef tvec<3, bool, P> bool_type; // -- Data -- @@ -86,7 +86,7 @@ namespace glm GLM_FUNC_DECL GLM_CONSTEXPR tvec() GLM_DEFAULT_CTOR; GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec const & v) GLM_DEFAULT; template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<3, T, Q> const & v); // -- Explicit basic constructors -- @@ -100,29 +100,29 @@ namespace glm template GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, B b, C c); template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1 const & a, tvec1 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, P> const & a, tvec<1, B, P> const & b, tvec<1, C, P> 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 GLM_CONSTEXPR tvec(tvec2 const & a, B b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, A, Q> 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 GLM_CONSTEXPR tvec(tvec2 const & a, tvec1 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, A, Q> const & a, tvec<1, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec<2, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1 const & a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, Q> const & a, tvec<2, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<4, U, Q> const & v); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec3 const & v); + GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec<3, U, Q> const & v); // -- Swizzle constructors -- # if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED) @@ -150,31 +150,31 @@ namespace glm GLM_FUNC_DECL tvec & operator=(tvec const & v) GLM_DEFAULT; template - GLM_FUNC_DECL tvec & operator=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator+=(U scalar); template - GLM_FUNC_DECL tvec & operator+=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator+=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator+=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator+=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator-=(U scalar); template - GLM_FUNC_DECL tvec & operator-=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator-=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator-=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator-=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator*=(U scalar); template - GLM_FUNC_DECL tvec & operator*=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator*=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator*=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator*=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator/=(U scalar); template - GLM_FUNC_DECL tvec & operator/=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator/=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator/=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator/=(tvec<3, U, P> const & v); // -- Increment and decrement operators -- @@ -188,217 +188,217 @@ namespace glm template GLM_FUNC_DECL tvec & operator%=(U scalar); template - GLM_FUNC_DECL tvec & operator%=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator%=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator%=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator%=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator&=(U scalar); template - GLM_FUNC_DECL tvec & operator&=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator&=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator&=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator&=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator|=(U scalar); template - GLM_FUNC_DECL tvec & operator|=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator|=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator|=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator|=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator^=(U scalar); template - GLM_FUNC_DECL tvec & operator^=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator^=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator^=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator^=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator<<=(U scalar); template - GLM_FUNC_DECL tvec & operator<<=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator<<=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator<<=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator<<=(tvec<3, U, P> const & v); template GLM_FUNC_DECL tvec & operator>>=(U scalar); template - GLM_FUNC_DECL tvec & operator>>=(tvec1 const & v); + GLM_FUNC_DECL tvec & operator>>=(tvec<1, U, P> const & v); template - GLM_FUNC_DECL tvec & operator>>=(tvec3 const & v); + GLM_FUNC_DECL tvec & operator>>=(tvec<3, U, P> const & v); }; // -- Unary operators -- template - GLM_FUNC_DECL tvec3 operator+(tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator-(tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v); // -- Binary operators -- template - GLM_FUNC_DECL tvec3 operator+(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator+(tvec3 const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar); template - GLM_FUNC_DECL tvec3 operator+(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator+(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator+(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator+(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator-(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator-(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator-(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator-(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator-(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator-(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator*(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator*(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator*(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator*(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator*(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator*(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator/(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator/(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator/(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator/(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator/(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator/(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator%(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator%(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator%(T const & scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator%(T const & scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator%(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator%(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator&(tvec3 const & v1, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, T scalar); template - GLM_FUNC_DECL tvec3 operator&(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator&(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator&(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator&(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator&(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator|(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator|(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator|(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator|(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator|(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator|(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator^(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator^(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator^(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator^(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator^(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator^(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator<<(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator<<(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator<<(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator<<(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator<<(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator<<(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator>>(tvec3 const & v, T scalar); + GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec3 operator>>(tvec3 const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator>>(T scalar, tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator>>(T scalar, tvec<3, T, P> const & v); template - GLM_FUNC_DECL tvec3 operator>>(tvec1 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator>>(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator~(tvec3 const & v); + GLM_FUNC_DECL tvec<3, T, P> operator~(tvec<3, T, P> const & v); // -- Boolean operators -- template - GLM_FUNC_DECL bool operator==(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL bool operator==(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL bool operator!=(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL bool operator!=(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2); template - GLM_FUNC_DECL tvec3 operator&&(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, bool, P> operator&&(tvec<3, bool, P> const & v1, tvec<3, bool, P> const & v2); template - GLM_FUNC_DECL tvec3 operator||(tvec3 const & v1, tvec3 const & v2); + GLM_FUNC_DECL tvec<3, bool, P> operator||(tvec<3, bool, P> const & v1, tvec<3, bool, P> const & v2); }//namespace glm #ifndef GLM_EXTERNAL_TEMPLATE diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index 99168296..1ebbf6be 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -55,7 +55,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec1 const & a, tvec1 const & b, tvec1 const & c) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<1, A, P> const & a, tvec<1, B, P> const & b, tvec<1, C, P> const & c) : x(static_cast(a)), y(static_cast(b)), z(static_cast(c)) @@ -65,7 +65,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec2 const & a, B b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<2, A, Q> const & a, B b) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(b)) @@ -73,7 +73,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec2 const & a, tvec1 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<2, A, Q> const & a, tvec<1, B, Q> const & b) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(b.x)) @@ -81,7 +81,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(A a, tvec2 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(A a, tvec<2, B, Q> const & b) : x(static_cast(a)), y(static_cast(b.x)), z(static_cast(b.y)) @@ -89,7 +89,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec1 const & a, tvec2 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<1, A, Q> const & a, tvec<2, B, Q> const & b) : x(static_cast(a.x)), y(static_cast(b.x)), z(static_cast(b.y)) @@ -105,7 +105,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec4 const & v) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<4, U, Q> const & v) : x(static_cast(v.x)), y(static_cast(v.y)), z(static_cast(v.z)) @@ -162,7 +162,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator+=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator+=(tvec<1, U, P> const & v) { this->x += static_cast(v.x); this->y += static_cast(v.x); @@ -192,7 +192,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator-=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator-=(tvec<1, U, P> const & v) { this->x -= static_cast(v.x); this->y -= static_cast(v.x); @@ -222,7 +222,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator*=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator*=(tvec<1, U, P> const & v) { this->x *= static_cast(v.x); this->y *= static_cast(v.x); @@ -252,7 +252,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator/=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator/=(tvec<1, U, P> const & v) { this->x /= static_cast(v.x); this->y /= static_cast(v.x); @@ -320,7 +320,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator%=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator%=(tvec<1, U, P> const & v) { this->x %= v.x; this->y %= v.x; @@ -350,7 +350,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator&=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator&=(tvec<1, U, P> const & v) { this->x &= v.x; this->y &= v.x; @@ -380,7 +380,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator|=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator|=(tvec<1, U, P> const & v) { this->x |= v.x; this->y |= v.x; @@ -410,7 +410,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator^=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator^=(tvec<1, U, P> const & v) { this->x ^= v.x; this->y ^= v.x; @@ -440,7 +440,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator<<=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator<<=(tvec<1, U, P> const & v) { this->x <<= static_cast(v.x); this->y <<= static_cast(v.x); @@ -470,7 +470,7 @@ namespace glm template template - GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator>>=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator>>=(tvec<1, U, P> const & v) { this->x >>= static_cast(v.x); this->y >>= static_cast(v.x); @@ -517,7 +517,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x + scalar.x, @@ -535,7 +535,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x + v.x, @@ -562,7 +562,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x - scalar.x, @@ -580,7 +580,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x - v.x, @@ -607,7 +607,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x * scalar.x, @@ -625,7 +625,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x * v.x, @@ -652,7 +652,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x / scalar.x, @@ -670,7 +670,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x / v.x, @@ -699,7 +699,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x % scalar.x, @@ -717,7 +717,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x % v.x, @@ -744,7 +744,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x & scalar.x, @@ -762,7 +762,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x & v.x, @@ -789,7 +789,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x | scalar.x, @@ -807,7 +807,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x | v.x, @@ -834,7 +834,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x ^ scalar.x, @@ -852,7 +852,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x ^ v.x, @@ -879,7 +879,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x << scalar.x, @@ -897,7 +897,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x << v.x, @@ -924,7 +924,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec<3, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<3, T, P>( v.x >> scalar.x, @@ -942,7 +942,7 @@ namespace glm } template - GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec1 const & scalar, tvec<3, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec<1, T, P> const & scalar, tvec<3, T, P> const & v) { return tvec<3, T, P>( scalar.x >> v.x, diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index 42442a74..af9ec56a 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -103,43 +103,43 @@ namespace glm template GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec(A a, B b, C c, D d); template - GLM_FUNC_DECL GLM_CONSTEXPR_CTOR tvec(tvec1 const& a, tvec1 const& b, tvec1 const& c, tvec1 const& d); + GLM_FUNC_DECL GLM_CONSTEXPR_CTOR tvec(tvec<1, A, P> const& a, tvec<1, B, P> const& b, tvec<1, C, P> const& c, tvec<1, D, P> 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 GLM_CONSTEXPR tvec(tvec2 const & a, B b, C c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, A, Q> 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 GLM_CONSTEXPR tvec(tvec2 const & a, tvec1 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, A, Q> const & a, tvec<1, B, Q> const & b, tvec<1, C, Q> const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec2 const & b, C c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec<2, B, Q> 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 GLM_CONSTEXPR tvec(tvec1 const & a, tvec2 const & b, tvec1 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, Q> const & a, tvec<2, B, Q> const & b, tvec<1, C, Q> const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, B b, tvec2 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, B b, tvec<2, C, Q> const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1 const & a, tvec1 const & b, tvec2 const & c); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, Q> const & a, tvec<1, B, Q> const & b, tvec<2, C, Q> const & c); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec3 const & a, B b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<3, A, Q> 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 GLM_CONSTEXPR tvec(tvec3 const & a, tvec1 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<3, A, Q> const & a, tvec<1, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec3 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec<3, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1 const & a, tvec3 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<1, A, Q> const & a, tvec<3, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template - GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2 const & a, tvec2 const & b); + GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, A, Q> const & a, tvec<2, B, Q> const & b); /// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification) template @@ -199,25 +199,25 @@ namespace glm template GLM_FUNC_DECL tvec<4, T, P> & operator+=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator-=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator*=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec1 const& v); + GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec<1, U, P> const& v); template GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec<4, U, P> const& v); template GLM_FUNC_DECL tvec<4, T, P> & operator/=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec<4, U, P> const & v); @@ -233,37 +233,37 @@ namespace glm template GLM_FUNC_DECL tvec<4, T, P> & operator%=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator&=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator|=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator^=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator<<=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec<4, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator>>=(U scalar); template - GLM_FUNC_DECL tvec<4, T, P> & operator>>=(tvec1 const & v); + GLM_FUNC_DECL tvec<4, T, P> & operator>>=(tvec<1, U, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> & operator>>=(tvec<4, U, P> const & v); }; @@ -282,13 +282,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator+(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator+(tvec1 const & v1, tvec<4, T, P> const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -297,13 +297,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator-(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator-(tvec1 const & v1, tvec<4, T, P> const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -312,13 +312,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator*(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator*(tvec1 const & v1, tvec<4, T, P> const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -327,13 +327,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec1 const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator/(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator/(tvec1 const & v1, tvec<4, T, P> const & v2); + GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2); template GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -342,13 +342,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator%(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator%(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -357,13 +357,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator&(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator&(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -372,13 +372,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator|(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator|(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -387,13 +387,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator^(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator^(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -402,13 +402,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator<<(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); @@ -417,13 +417,13 @@ namespace glm GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v, T scalar); template - GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v, tvec1 const & scalar); + GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar); template GLM_FUNC_DECL tvec<4, T, P> operator>>(T scalar, tvec<4, T, P> const & v); template - GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec1 const & scalar, tvec<4, T, P> const & v); + GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v); template GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2); diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index e9a47ac7..19e3efd5 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -205,7 +205,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec<4, T, P>::tvec(tvec1 const & a, tvec1 const & b, tvec1 const & c, tvec1 const & d) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec<4, T, P>::tvec(tvec<1, A, P> const & a, tvec<1, B, P> const & b, tvec<1, C, P> const & c, tvec<1, D, P> const & d) : x(static_cast(a.x)), y(static_cast(b.x)), z(static_cast(c.x)), @@ -216,7 +216,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2 const & a, B b, C c) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<2, A, Q> const & a, B b, C c) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(b)), @@ -225,7 +225,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2 const & a, tvec1 const & b, tvec1 const & c) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<2, A, Q> const & a, tvec<1, B, Q> const & b, tvec<1, C, Q> const & c) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(b.x)), @@ -234,7 +234,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, tvec2 const & v, C s2) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, tvec<2, B, Q> const & v, C s2) : x(static_cast(s1)), y(static_cast(v.x)), z(static_cast(v.y)), @@ -243,7 +243,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1 const & a, tvec2 const & b, tvec1 const & c) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<1, A, Q> const & a, tvec<2, B, Q> const & b, tvec<1, C, Q> const & c) : x(static_cast(a.x)), y(static_cast(b.x)), z(static_cast(b.y)), @@ -252,7 +252,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, B s2, tvec2 const & v) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, B s2, tvec<2, C, Q> const & v) : x(static_cast(s1)), y(static_cast(s2)), z(static_cast(v.x)), @@ -261,7 +261,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1 const & a, tvec1 const & b, tvec2 const & c) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<1, A, Q> const & a, tvec<1, B, Q> const & b, tvec<2, C, Q> const & c) : x(static_cast(a.x)), y(static_cast(b.x)), z(static_cast(c.x)), @@ -270,7 +270,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec3 const & a, B b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<3, A, Q> const & a, B b) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(a.z)), @@ -279,7 +279,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec3 const & a, tvec1 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<3, A, Q> const & a, tvec<1, B, Q> const & b) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(a.z)), @@ -288,7 +288,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A a, tvec3 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A a, tvec<3, B, Q> const & b) : x(static_cast(a)), y(static_cast(b.x)), z(static_cast(b.y)), @@ -297,7 +297,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1 const & a, tvec3 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<1, A, Q> const & a, tvec<3, B, Q> const & b) : x(static_cast(a.x)), y(static_cast(b.x)), z(static_cast(b.y)), @@ -306,7 +306,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2 const & a, tvec2 const & b) : + GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec<2, A, Q> const & a, tvec<2, B, Q> const & b) : x(static_cast(a.x)), y(static_cast(a.y)), z(static_cast(b.x)), @@ -372,7 +372,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator+=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator+=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_add::value>::call(*this, tvec<4, T, P>(v.x))); } @@ -393,7 +393,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator-=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator-=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_sub::value>::call(*this, tvec<4, T, P>(v.x))); } @@ -414,7 +414,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator*=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator*=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_mul::value>::call(*this, tvec<4, T, P>(v.x))); } @@ -435,7 +435,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator/=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator/=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_div::value>::call(*this, tvec<4, T, P>(v.x))); } @@ -496,7 +496,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator%=(tvec1 const& v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator%=(tvec<1, U, P> const& v) { return (*this = detail::compute_vec4_mod::value>::call(*this, tvec<4, T, P>(v))); } @@ -517,7 +517,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator&=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator&=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_and::value, sizeof(T) * 8, detail::is_aligned

::value>::call(*this, tvec<4, T, P>(v))); } @@ -538,7 +538,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator|=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator|=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_or::value, sizeof(T) * 8, detail::is_aligned

::value>::call(*this, tvec<4, T, P>(v))); } @@ -559,7 +559,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator^=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator^=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_xor::value, sizeof(T) * 8, detail::is_aligned

::value>::call(*this, tvec<4, T, P>(v))); } @@ -580,7 +580,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator<<=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator<<=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_shift_left::value, sizeof(T) * 8, detail::is_aligned

::value>::call(*this, tvec<4, T, P>(v))); } @@ -601,7 +601,7 @@ namespace detail template template - GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator>>=(tvec1 const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator>>=(tvec<1, U, P> const & v) { return (*this = detail::compute_vec4_shift_right::value, sizeof(T) * 8, detail::is_aligned

::value>::call(*this, tvec<4, T, P>(v))); } @@ -636,7 +636,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) += v2; } @@ -648,7 +648,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v2) += v1; } @@ -666,7 +666,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) -= v2; } @@ -678,7 +678,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) -= v2; } @@ -696,7 +696,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) *= v2; } @@ -708,7 +708,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v2) *= v1; } @@ -726,7 +726,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) /= v2; } @@ -738,7 +738,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) /= v2; } @@ -758,7 +758,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) %= v2.x; } @@ -770,7 +770,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec1 const & scalar, tvec<4, T, P> const & v) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec<1, T, P> const & scalar, tvec<4, T, P> const & v) { return tvec<4, T, P>(scalar.x) %= v; } @@ -788,7 +788,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec1 const & scalar) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar) { return tvec<4, T, P>(v) &= scalar; } @@ -800,7 +800,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) &= v2; } @@ -818,7 +818,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) |= v2.x; } @@ -830,7 +830,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) |= v2; } @@ -848,7 +848,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) ^= v2.x; } @@ -860,7 +860,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) ^= v2; } @@ -878,7 +878,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) <<= v2.x; } @@ -890,7 +890,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) <<= v2; } @@ -908,7 +908,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec<4, T, P> const & v1, tvec1 const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2) { return tvec<4, T, P>(v1) >>= v2.x; } @@ -920,7 +920,7 @@ namespace detail } template - GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec1 const & v1, tvec<4, T, P> const & v2) + GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec<1, T, P> const & v1, tvec<4, T, P> const & v2) { return tvec<4, T, P>(v1.x) >>= v2; }