fixes VS2013 compiler errors

This commit is contained in:
John McFarlane 2016-12-29 07:25:18 -08:00
parent 26672ab0de
commit d7fd5a61da
8 changed files with 346 additions and 346 deletions

View File

@ -96,13 +96,13 @@ namespace glm
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec2<U, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec3<U, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4<U, Q> 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 <typename U, precision Q>

View File

@ -42,25 +42,25 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec1<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<1, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec2<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<2, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec3<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<3, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec4<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<1, T, P>::tvec(tvec<4, U, Q> const & v)
: x(static_cast<T>(v.x))
{}
@ -93,7 +93,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator=(tvec<1, U, P> const & v)
{
this->x = static_cast<T>(v.x);
return *this;
@ -109,7 +109,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator+=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator+=(tvec<1, U, P> const & v)
{
this->x += static_cast<T>(v.x);
return *this;
@ -125,7 +125,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator-=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator-=(tvec<1, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
return *this;
@ -141,7 +141,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator*=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator*=(tvec<1, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
return *this;
@ -157,7 +157,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator/=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator/=(tvec<1, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
return *this;
@ -207,7 +207,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator%=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator%=(tvec<1, U, P> const & v)
{
this->x %= static_cast<T>(v.x);
return *this;
@ -223,7 +223,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator&=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator&=(tvec<1, U, P> const & v)
{
this->x &= static_cast<T>(v.x);
return *this;
@ -239,7 +239,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator|=(tvec1<U, P> 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 <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator^=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator^=(tvec<1, U, P> const & v)
{
this->x ^= static_cast<T>(v.x);
return *this;
@ -271,7 +271,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator<<=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator<<=(tvec<1, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
return *this;
@ -287,7 +287,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator>>=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<1, T, P> & tvec<1, T, P>::operator>>=(tvec<1, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
return *this;
@ -545,14 +545,14 @@ namespace glm
}
template <precision P>
GLM_FUNC_QUALIFIER tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
GLM_FUNC_QUALIFIER tvec<1, bool, P> operator&&(tvec<1, bool, P> const & v1, tvec<1, bool, P> const & v2)
{
return tvec1<bool, P>(v1.x && v2.x);
return tvec<1, bool, P>(v1.x && v2.x);
}
template <precision P>
GLM_FUNC_QUALIFIER tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
GLM_FUNC_QUALIFIER tvec<1, bool, P> operator||(tvec<1, bool, P> const & v1, tvec<1, bool, P> const & v2)
{
return tvec1<bool, P>(v1.x || v2.x);
return tvec<1, bool, P>(v1.x || v2.x);
}
}//namespace glm

View File

@ -22,7 +22,7 @@ namespace glm
typedef T value_type;
typedef tvec type;
typedef tvec2<bool, P> 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 <precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<T, Q> const& v);
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<2, T, Q> const& v);
// -- Explicit basic constructors --
@ -100,20 +100,20 @@ namespace glm
template <typename A, typename B>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A x, B y);
template <typename A, typename B>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, P> const & v1, tvec1<B, P> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec3<U, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4<U, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec2<U, Q> 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 <typename U>
GLM_FUNC_DECL tvec& operator=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec& operator=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator+=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec& operator+=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec& operator+=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator+=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec& operator+=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator-=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec& operator-=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec& operator-=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator-=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec& operator-=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator*=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec& operator*=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec& operator*=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator*=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec& operator*=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator/=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec& operator/=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec& operator/=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec& operator/=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec& operator/=(tvec<2, U, P> const & v);
// -- Increment and decrement operators --
@ -167,217 +167,217 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tvec & operator%=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator%=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator%=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator%=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator%=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator&=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator&=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator|=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator|=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator^=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator^=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator<<=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator<<=(tvec<2, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator>>=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(tvec2<U, P> const & v);
GLM_FUNC_DECL tvec & operator>>=(tvec<2, U, P> const & v);
};
// -- Unary operators --
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v);
// -- Binary operators --
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator+(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator-(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator*(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator/(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator%(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator&(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator|(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator^(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator<<(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(T scalar, tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator>>(T scalar, tvec<2, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<1, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> const & v);
GLM_FUNC_DECL tvec<2, T, P> operator~(tvec<2, T, P> const & v);
// -- Boolean operators --
template <typename T, precision P>
GLM_FUNC_DECL bool operator==(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL bool operator==(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
GLM_FUNC_DECL bool operator!=(tvec<2, T, P> const & v1, tvec<2, T, P> const & v2);
template <precision P>
GLM_FUNC_DECL tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
GLM_FUNC_DECL tvec<2, bool, P> operator&&(tvec<2, bool, P> const & v1, tvec<2, bool, P> const & v2);
template <precision P>
GLM_FUNC_DECL tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> 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

View File

@ -54,7 +54,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec1<A, P> const & a, tvec1<B, P> 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<T>(a.x))
, y(static_cast<T>(b.x))
{}
@ -70,14 +70,14 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec3<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec<3, U, Q> const & v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec4<U, Q> const & v)
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<2, T, P>::tvec(tvec<4, U, Q> const & v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
@ -130,7 +130,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator+=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator+=(tvec<1, U, P> const & v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.x);
@ -157,7 +157,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator-=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator-=(tvec<1, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.x);
@ -184,7 +184,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator*=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator*=(tvec<1, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.x);
@ -211,7 +211,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator/=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator/=(tvec<1, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.x);
@ -274,7 +274,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator%=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator%=(tvec<1, U, P> const & v)
{
this->x %= static_cast<T>(v.x);
this->y %= static_cast<T>(v.x);
@ -301,7 +301,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator&=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator&=(tvec<1, U, P> const & v)
{
this->x &= static_cast<T>(v.x);
this->y &= static_cast<T>(v.x);
@ -328,7 +328,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator|=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator|=(tvec<1, U, P> const & v)
{
this->x |= static_cast<T>(v.x);
this->y |= static_cast<T>(v.x);
@ -355,7 +355,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator^=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator^=(tvec<1, U, P> const & v)
{
this->x ^= static_cast<T>(v.x);
this->y ^= static_cast<T>(v.x);
@ -382,7 +382,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator<<=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator<<=(tvec<1, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.x);
@ -409,7 +409,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator>>=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<2, T, P> & tvec<2, T, P>::operator>>=(tvec<1, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.x);
@ -452,7 +452,7 @@ namespace glm
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator+(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator-(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator*(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator/(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator%(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator&(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator|(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator^(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator<<(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec<2, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<2, T, P> operator>>(tvec1<T, P> 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,

View File

@ -22,7 +22,7 @@ namespace glm
typedef T value_type;
typedef tvec type;
typedef tvec3<bool, P> 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 <precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec3<T, Q> const & v);
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec<3, T, Q> const & v);
// -- Explicit basic constructors --
@ -100,29 +100,29 @@ namespace glm
template <typename A, typename B, typename C>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, B b, C c);
template <typename A, typename B, typename C>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<A, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<A, Q> const & a, tvec1<B, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec2<B, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, Q> const & a, tvec2<B, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec4<U, Q> 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 <typename U, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec(tvec3<U, Q> 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 <typename U>
GLM_FUNC_DECL tvec & operator=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator+=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator+=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator+=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator+=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator+=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator-=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator-=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator-=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator-=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator-=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator*=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator*=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator*=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator*=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator*=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator/=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator/=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator/=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator/=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator/=(tvec<3, U, P> const & v);
// -- Increment and decrement operators --
@ -188,217 +188,217 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tvec & operator%=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator%=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator%=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator%=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator%=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator&=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator&=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator&=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator|=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator|=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator|=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator^=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator^=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator^=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator<<=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator<<=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator<<=(tvec<3, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec & operator>>=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec & operator>>=(tvec3<U, P> const & v);
GLM_FUNC_DECL tvec & operator>>=(tvec<3, U, P> const & v);
};
// -- Unary operators --
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v);
// -- Binary operators --
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator+(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator+(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator-(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator-(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator*(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator*(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator/(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator/(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(T const & scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator%(T const & scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator%(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator&(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator&(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator|(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator|(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator^(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator^(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator<<(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator<<(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T scalar);
GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(T scalar, tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator>>(T scalar, tvec<3, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<1, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL tvec<3, T, P> operator>>(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> const & v);
GLM_FUNC_DECL tvec<3, T, P> operator~(tvec<3, T, P> const & v);
// -- Boolean operators --
template <typename T, precision P>
GLM_FUNC_DECL bool operator==(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL bool operator==(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
GLM_FUNC_DECL bool operator!=(tvec<3, T, P> const & v1, tvec<3, T, P> const & v2);
template <precision P>
GLM_FUNC_DECL tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
GLM_FUNC_DECL tvec<3, bool, P> operator&&(tvec<3, bool, P> const & v1, tvec<3, bool, P> const & v2);
template <precision P>
GLM_FUNC_DECL tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> 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

View File

@ -55,7 +55,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> 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<T>(a)),
y(static_cast<T>(b)),
z(static_cast<T>(c))
@ -65,7 +65,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec2<A, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b))
@ -73,7 +73,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec2<A, Q> const & a, tvec1<B, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x))
@ -81,7 +81,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(A a, tvec2<B, Q> const & b) :
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(A a, tvec<2, B, Q> const & b) :
x(static_cast<T>(a)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y))
@ -89,7 +89,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec1<A, Q> const & a, tvec2<B, Q> 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<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y))
@ -105,7 +105,7 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec4<U, Q> const & v) :
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<3, T, P>::tvec(tvec<4, U, Q> const & v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z))
@ -162,7 +162,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator+=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator+=(tvec<1, U, P> const & v)
{
this->x += static_cast<T>(v.x);
this->y += static_cast<T>(v.x);
@ -192,7 +192,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator-=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator-=(tvec<1, U, P> const & v)
{
this->x -= static_cast<T>(v.x);
this->y -= static_cast<T>(v.x);
@ -222,7 +222,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator*=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator*=(tvec<1, U, P> const & v)
{
this->x *= static_cast<T>(v.x);
this->y *= static_cast<T>(v.x);
@ -252,7 +252,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator/=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator/=(tvec<1, U, P> const & v)
{
this->x /= static_cast<T>(v.x);
this->y /= static_cast<T>(v.x);
@ -320,7 +320,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator%=(tvec1<U, P> 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 <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator&=(tvec1<U, P> 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 <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator|=(tvec1<U, P> 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 <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator^=(tvec1<U, P> 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 <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator<<=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator<<=(tvec<1, U, P> const & v)
{
this->x <<= static_cast<T>(v.x);
this->y <<= static_cast<T>(v.x);
@ -470,7 +470,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator>>=(tvec1<U, P> const & v)
GLM_FUNC_QUALIFIER tvec<3, T, P> & tvec<3, T, P>::operator>>=(tvec<1, U, P> const & v)
{
this->x >>= static_cast<T>(v.x);
this->y >>= static_cast<T>(v.x);
@ -517,7 +517,7 @@ namespace glm
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator+(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator-(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator*(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator/(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator%(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator&(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator|(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator^(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator<<(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec<3, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<3, T, P> operator>>(tvec1<T, P> 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,

View File

@ -103,43 +103,43 @@ namespace glm
template <typename A, typename B, typename C, typename D>
GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec(A a, B b, C c, D d);
template <typename A, typename B, typename C, typename D>
GLM_FUNC_DECL GLM_CONSTEXPR_CTOR tvec(tvec1<A, P> const& a, tvec1<B, P> const& b, tvec1<C, P> const& c, tvec1<D, P> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<A, Q> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec2<B, Q> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, B b, tvec2<C, Q> 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 <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec3<A, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec3<A, Q> const & a, tvec1<B, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(A a, tvec3<B, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec1<A, Q> const & a, tvec3<B, Q> 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 <typename A, typename B, precision Q>
GLM_FUNC_DECL GLM_CONSTEXPR tvec(tvec2<A, Q> const & a, tvec2<B, Q> 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 <typename U, precision Q>
@ -199,25 +199,25 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator+=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator+=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator-=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator-=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator*=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec1<U, P> const& v);
GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec<1, U, P> const& v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator*=(tvec<4, U, P> const& v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator/=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator/=(tvec<4, U, P> const & v);
@ -233,37 +233,37 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator%=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator%=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator&=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator&=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator|=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator|=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator^=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator^=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator<<=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec<1, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator<<=(tvec<4, U, P> const & v);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator>>=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec<4, T, P> & operator>>=(tvec1<U, P> const & v);
GLM_FUNC_DECL tvec<4, T, P> & operator>>=(tvec<1, U, P> const & v);
template <typename U>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator+(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator+(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator-(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator-(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator*(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator*(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec1<T, P> const & v2);
GLM_FUNC_DECL tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec<1, T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator/(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator/(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator%(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator%(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator%(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator&(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator&(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator|(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator|(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator|(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator^(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator^(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator^(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator<<(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator<<(tvec1<T, P> 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 <typename T, precision P>
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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v, tvec1<T, P> const & scalar);
GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v, tvec<1, T, P> const & scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator>>(T scalar, tvec<4, T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_DECL tvec<4, T, P> operator>>(tvec<4, T, P> const & v1, tvec<4, T, P> const & v2);

View File

@ -205,7 +205,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, typename D>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec<4, T, P>::tvec(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> 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<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(c.x)),
@ -216,7 +216,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2<A, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b)),
@ -225,7 +225,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x)),
@ -234,7 +234,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, tvec2<B, Q> 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<T>(s1)),
y(static_cast<T>(v.x)),
z(static_cast<T>(v.y)),
@ -243,7 +243,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> 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<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@ -252,7 +252,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A s1, B s2, tvec2<C, Q> 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<T>(s1)),
y(static_cast<T>(s2)),
z(static_cast<T>(v.x)),
@ -261,7 +261,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> 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<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(c.x)),
@ -270,7 +270,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec3<A, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(a.z)),
@ -279,7 +279,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec3<A, Q> const & a, tvec1<B, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(a.z)),
@ -288,7 +288,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A a, tvec3<B, Q> const & b) :
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(A a, tvec<3, B, Q> const & b) :
x(static_cast<T>(a)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@ -297,7 +297,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec1<A, Q> const & a, tvec3<B, Q> 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<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@ -306,7 +306,7 @@ namespace detail
template <typename T, precision P>
template <typename A, typename B, precision Q>
GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec<4, T, P>::tvec(tvec2<A, Q> const & a, tvec2<B, Q> 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<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x)),
@ -372,7 +372,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator+=(tvec1<U, P> 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<T, P, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v.x)));
}
@ -393,7 +393,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator-=(tvec1<U, P> 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<T, P, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v.x)));
}
@ -414,7 +414,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator*=(tvec1<U, P> 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<T, P, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v.x)));
}
@ -435,7 +435,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator/=(tvec1<U, P> 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<T, P, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v.x)));
}
@ -496,7 +496,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator%=(tvec1<U, P> 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<T, P, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -517,7 +517,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator&=(tvec1<U, P> 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<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -538,7 +538,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator|=(tvec1<U, P> 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<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -559,7 +559,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator^=(tvec1<U, P> 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<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -580,7 +580,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator<<=(tvec1<U, P> 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<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -601,7 +601,7 @@ namespace detail
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec<4, T, P> & tvec<4, T, P>::operator>>=(tvec1<U, P> 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<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec<4, T, P>(v)));
}
@ -636,7 +636,7 @@ namespace detail
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator+(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator-(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator*(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator/(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator%(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec<4, T, P> const & v, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator&(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator|(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator^(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator<<(tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec<4, T, P> const & v1, tvec1<T, P> 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 <typename T, precision P>
GLM_FUNC_QUALIFIER tvec<4, T, P> operator>>(tvec1<T, P> 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;
}