|
|
|
@ -127,7 +127,7 @@ namespace detail |
|
|
|
|
template<typename T, qualifier Q, int IsInt, std::size_t Size, bool Aligned> |
|
|
|
|
struct compute_vec4_equal |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static bool call(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 static bool call(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return |
|
|
|
|
detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x) && |
|
|
|
@ -140,7 +140,7 @@ namespace detail |
|
|
|
|
template<typename T, qualifier Q, int IsInt, std::size_t Size, bool Aligned> |
|
|
|
|
struct compute_vec4_nequal |
|
|
|
|
{ |
|
|
|
|
GLM_FUNC_QUALIFIER static bool call(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 static bool call(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return !compute_vec4_equal<T, Q, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<Q>::value>::call(v1, v2); |
|
|
|
|
} |
|
|
|
@ -1118,25 +1118,25 @@ namespace detail |
|
|
|
|
// -- Boolean operators -- |
|
|
|
|
|
|
|
|
|
template<typename T, qualifier Q> |
|
|
|
|
GLM_FUNC_QUALIFIER bool operator==(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 bool operator==(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return detail::compute_vec4_equal<T, Q, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<Q>::value>::call(v1, v2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename T, qualifier Q> |
|
|
|
|
GLM_FUNC_QUALIFIER bool operator!=(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 bool operator!=(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return detail::compute_vec4_nequal<T, Q, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<Q>::value>::call(v1, v2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<qualifier Q> |
|
|
|
|
GLM_FUNC_QUALIFIER vec<4, bool, Q> operator&&(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 vec<4, bool, Q> operator&&(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return vec<4, bool, Q>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z, v1.w && v2.w); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<qualifier Q> |
|
|
|
|
GLM_FUNC_QUALIFIER vec<4, bool, Q> operator||(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2) |
|
|
|
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CXX14 vec<4, bool, Q> operator||(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2) |
|
|
|
|
{ |
|
|
|
|
return vec<4, bool, Q>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z, v1.w || v2.w); |
|
|
|
|
} |
|
|
|
|