|
|
|
@ -104,17 +104,35 @@ namespace detail |
|
|
|
|
template <precision Q> |
|
|
|
|
GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v); |
|
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
// Swizzle constructors
|
|
|
|
|
|
|
|
|
|
# if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) |
|
|
|
|
template <int E0, int E1, int E2> |
|
|
|
|
GLM_FUNC_DECL tvec3(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that) |
|
|
|
|
{ |
|
|
|
|
*this = that(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <int E0, int E1> |
|
|
|
|
GLM_FUNC_DECL tvec3(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & s) |
|
|
|
|
{ |
|
|
|
|
*this = tvec3<T, P>(v(), s); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <int E0, int E1> |
|
|
|
|
GLM_FUNC_DECL tvec3(T const & s, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v) |
|
|
|
|
{ |
|
|
|
|
*this = tvec3<T, P>(s, v()); |
|
|
|
|
} |
|
|
|
|
# endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
// Explicit basic constructors
|
|
|
|
|
|
|
|
|
|
GLM_FUNC_DECL explicit tvec3( |
|
|
|
|
ctor); |
|
|
|
|
GLM_FUNC_DECL explicit tvec3( |
|
|
|
|
T const & s); |
|
|
|
|
GLM_FUNC_DECL tvec3( |
|
|
|
|
T const & s1, |
|
|
|
|
T const & s2, |
|
|
|
|
T const & s3); |
|
|
|
|
GLM_FUNC_DECL explicit tvec3(ctor); |
|
|
|
|
GLM_FUNC_DECL explicit tvec3(T const & s); |
|
|
|
|
GLM_FUNC_DECL tvec3(T const & s1, T const & s2, T const & s3); |
|
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
// Conversion scalar constructors
|
|
|
|
@ -142,29 +160,6 @@ namespace detail |
|
|
|
|
template <typename U, precision Q> |
|
|
|
|
GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v); |
|
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
// Swizzle constructors
|
|
|
|
|
|
|
|
|
|
# if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)) |
|
|
|
|
template <int E0, int E1, int E2> |
|
|
|
|
GLM_FUNC_DECL tvec3(_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that) |
|
|
|
|
{ |
|
|
|
|
*this = that(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <int E0, int E1> |
|
|
|
|
GLM_FUNC_DECL tvec3(_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & s) |
|
|
|
|
{ |
|
|
|
|
*this = tvec3<T, P>(v(), s); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <int E0, int E1> |
|
|
|
|
GLM_FUNC_DECL tvec3(T const & s, _swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v) |
|
|
|
|
{ |
|
|
|
|
*this = tvec3<T, P>(s, v()); |
|
|
|
|
} |
|
|
|
|
# endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
// Unary arithmetic operators
|
|
|
|
|
|
|
|
|
|