15 GLM_INLINE
void hash_combine(
size_t &seed,
size_t hash)
17 hash += 0x9e3779b9 + (seed << 6) + (seed >> 2);
24 template<
typename T, glm::qualifier Q>
25 GLM_FUNC_QUALIFIER
size_t hash<glm::vec<1, T, Q>>::operator()(
glm::vec<1, T, Q> const& v)
const
31 template<
typename T, glm::qualifier Q>
32 GLM_FUNC_QUALIFIER
size_t hash<glm::vec<2, T, Q>>::operator()(
glm::vec<2, T, Q> const& v)
const
36 glm::detail::hash_combine(seed, hasher(v.x));
37 glm::detail::hash_combine(seed, hasher(v.y));
41 template<
typename T, glm::qualifier Q>
42 GLM_FUNC_QUALIFIER
size_t hash<glm::vec<3, T, Q>>::operator()(
glm::vec<3, T, Q> const& v)
const
46 glm::detail::hash_combine(seed, hasher(v.x));
47 glm::detail::hash_combine(seed, hasher(v.y));
48 glm::detail::hash_combine(seed, hasher(v.z));
52 template<
typename T, glm::qualifier Q>
53 GLM_FUNC_QUALIFIER
size_t hash<glm::vec<4, T, Q>>::operator()(
glm::vec<4, T, Q> const& v)
const
57 glm::detail::hash_combine(seed, hasher(v.x));
58 glm::detail::hash_combine(seed, hasher(v.y));
59 glm::detail::hash_combine(seed, hasher(v.z));
60 glm::detail::hash_combine(seed, hasher(v.w));
64 template<
typename T, glm::qualifier Q>
65 GLM_FUNC_QUALIFIER
size_t hash<glm::qua<T, Q>>::operator()(
glm::qua<T,Q> const& q)
const
69 glm::detail::hash_combine(seed, hasher(q.x));
70 glm::detail::hash_combine(seed, hasher(q.y));
71 glm::detail::hash_combine(seed, hasher(q.z));
72 glm::detail::hash_combine(seed, hasher(q.w));
76 template<
typename T, glm::qualifier Q>
77 GLM_FUNC_QUALIFIER
size_t hash<glm::tdualquat<T, Q>>::operator()(
glm::tdualquat<T, Q> const& q)
const
80 hash<glm::qua<T, Q>> hasher;
81 glm::detail::hash_combine(seed, hasher(q.real));
82 glm::detail::hash_combine(seed, hasher(q.dual));
86 template<
typename T, glm::qualifier Q>
87 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<2, 2, T, Q>>::operator()(
glm::mat<2, 2, T, Q> const& m)
const
90 hash<glm::vec<2, T, Q>> hasher;
91 glm::detail::hash_combine(seed, hasher(m[0]));
92 glm::detail::hash_combine(seed, hasher(m[1]));
96 template<
typename T, glm::qualifier Q>
97 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<2, 3, T, Q>>::operator()(
glm::mat<2, 3, T, Q> const& m)
const
100 hash<glm::vec<3, T, Q>> hasher;
101 glm::detail::hash_combine(seed, hasher(m[0]));
102 glm::detail::hash_combine(seed, hasher(m[1]));
106 template<
typename T, glm::qualifier Q>
107 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<2, 4, T, Q>>::operator()(
glm::mat<2, 4, T, Q> const& m)
const
110 hash<glm::vec<4, T, Q>> hasher;
111 glm::detail::hash_combine(seed, hasher(m[0]));
112 glm::detail::hash_combine(seed, hasher(m[1]));
116 template<
typename T, glm::qualifier Q>
117 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<3, 2, T, Q>>::operator()(
glm::mat<3, 2, T, Q> const& m)
const
120 hash<glm::vec<2, T, Q>> hasher;
121 glm::detail::hash_combine(seed, hasher(m[0]));
122 glm::detail::hash_combine(seed, hasher(m[1]));
123 glm::detail::hash_combine(seed, hasher(m[2]));
127 template<
typename T, glm::qualifier Q>
128 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<3, 3, T, Q>>::operator()(
glm::mat<3, 3, T, Q> const& m)
const
131 hash<glm::vec<3, T, Q>> hasher;
132 glm::detail::hash_combine(seed, hasher(m[0]));
133 glm::detail::hash_combine(seed, hasher(m[1]));
134 glm::detail::hash_combine(seed, hasher(m[2]));
138 template<
typename T, glm::qualifier Q>
139 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<3, 4, T, Q>>::operator()(
glm::mat<3, 4, T, Q> const& m)
const
142 hash<glm::vec<4, T, Q>> hasher;
143 glm::detail::hash_combine(seed, hasher(m[0]));
144 glm::detail::hash_combine(seed, hasher(m[1]));
145 glm::detail::hash_combine(seed, hasher(m[2]));
149 template<
typename T, glm::qualifier Q>
150 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<4, 2, T,Q>>::operator()(
glm::mat<4, 2, T,Q> const& m)
const
153 hash<glm::vec<2, T, Q>> hasher;
154 glm::detail::hash_combine(seed, hasher(m[0]));
155 glm::detail::hash_combine(seed, hasher(m[1]));
156 glm::detail::hash_combine(seed, hasher(m[2]));
157 glm::detail::hash_combine(seed, hasher(m[3]));
161 template<
typename T, glm::qualifier Q>
162 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<4, 3, T,Q>>::operator()(
glm::mat<4, 3, T,Q> const& m)
const
165 hash<glm::vec<3, T, Q>> hasher;
166 glm::detail::hash_combine(seed, hasher(m[0]));
167 glm::detail::hash_combine(seed, hasher(m[1]));
168 glm::detail::hash_combine(seed, hasher(m[2]));
169 glm::detail::hash_combine(seed, hasher(m[3]));
173 template<
typename T, glm::qualifier Q>
174 GLM_FUNC_QUALIFIER
size_t hash<glm::mat<4, 4, T,Q>>::operator()(
glm::mat<4, 4, T, Q> const& m)
const
177 hash<glm::vec<4, T, Q>> hasher;
178 glm::detail::hash_combine(seed, hasher(m[0]));
179 glm::detail::hash_combine(seed, hasher(m[1]));
180 glm::detail::hash_combine(seed, hasher(m[2]));
181 glm::detail::hash_combine(seed, hasher(m[3]));
detail namespace with internal helper functions
Definition json.h:249
std::size_t hash(const BasicJsonType &j)
hash a JSON value
Definition json.h:6023
Core features
Definition common.hpp:21
Definition qualifier.hpp:36
Definition type_quat.hpp:20
Definition dual_quaternion.hpp:38
Definition qualifier.hpp:35