| 1 | namespace glm |
| 2 | { |
| 3 | template<typename T, qualifier Q> |
| 4 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y) |
| 5 | { |
| 6 | vec<4, bool, Q> Result; |
| 7 | for(length_t i = 0; i < x.length(); ++i) |
| 8 | Result[i] = x[i] == y[i]; |
| 9 | return Result; |
| 10 | } |
| 11 | |
| 12 | template<typename T, qualifier Q> |
| 13 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon) |
| 14 | { |
| 15 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w); |
| 16 | return lessThan(abs(v), vec<4, T, Q>(epsilon)); |
| 17 | } |
| 18 | |
| 19 | template<typename T, qualifier Q> |
| 20 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y) |
| 21 | { |
| 22 | vec<4, bool, Q> Result; |
| 23 | for(length_t i = 0; i < x.length(); ++i) |
| 24 | Result[i] = x[i] != y[i]; |
| 25 | return Result; |
| 26 | } |
| 27 | |
| 28 | template<typename T, qualifier Q> |
| 29 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon) |
| 30 | { |
| 31 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w); |
| 32 | return greaterThanEqual(abs(v), vec<4, T, Q>(epsilon)); |
| 33 | } |
| 34 | }//namespace glm |
| 35 | |