= []() {
constexpr auto map_hash = [](
const Vertex &
v) {
constexpr auto comb = [](std::size_t seed, std::size_t h) {
h += 0x9e3779b9 + (seed << 6) + (seed >> 2);
return seed ^ h;
};
constexpr std::hash<float> h = {};
std::size_t seed = 0;
seed = comb(seed, h(x.x));
seed = comb(seed, h(x.y));
seed = comb(seed, h(x.z));
return seed;
};
};
constexpr auto map_cmp = [](
const Vertex &lhs, const Vertex &rhs
) {
return std::tie(lhs.pos, lhs.norm, lhs.color)
== std::tie(rhs.pos, rhs.norm, rhs.color);
};
using T = std::unordered_map<
return T(16, map_hash, map_cmp);
}
v[1]
Definition: math.lua:19
std::uint32_t u32
Definition: def.h:14
Hash hash(std::span< const char > s)
Definition: hash.h:12
Definition: graphics.h:136