master
ブランチ master
ShaderPlayground / deps / glm / glm / ext / matrix_relational.inl
1.7 KB、51行 生 Blame 履歴
1/// @ref ext_vector_relational
2/// @file glm/ext/vector_relational.inl
3
4// Dependency:
5#include "../ext/vector_relational.hpp"
6#include "../common.hpp"
7
8namespace glm
9{
10 template<length_t C, length_t R, typename T, qualifier Q>
11 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& a, mat<C, R, T, Q> const& b)
12 {
13 return equal(a, b, static_cast<T>(0));
14 }
15
16 template<length_t C, length_t R, typename T, qualifier Q>
17 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& a, mat<C, R, T, Q> const& b, T Epsilon)
18 {
19 return equal(a, b, vec<C, T, Q>(Epsilon));
20 }
21
22 template<length_t C, length_t R, typename T, qualifier Q>
23 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& a, mat<C, R, T, Q> const& b, vec<C, T, Q> const& Epsilon)
24 {
25 vec<C, bool, Q> Result(true);
26 for(length_t i = 0; i < C; ++i)
27 Result[i] = all(equal(a[i], b[i], Epsilon[i]));
28 return Result;
29 }
30
31 template<length_t C, length_t R, typename T, qualifier Q>
32 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y)
33 {
34 return notEqual(x, y, static_cast<T>(0));
35 }
36
37 template<length_t C, length_t R, typename T, qualifier Q>
38 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, T Epsilon)
39 {
40 return notEqual(x, y, vec<C, T, Q>(Epsilon));
41 }
42
43 template<length_t C, length_t R, typename T, qualifier Q>
44 GLM_FUNC_QUALIFIER GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& a, mat<C, R, T, Q> const& b, vec<C, T, Q> const& Epsilon)
45 {
46 vec<C, bool, Q> Result(true);
47 for(length_t i = 0; i < C; ++i)
48 Result[i] = any(notEqual(a[i], b[i], Epsilon[i]));
49 return Result;
50 }
51}//namespace glm