nngn
Loading...
Searching...
No Matches
anonymous_namespace{model.cpp} Namespace Reference

Variables

auto index_map
 

Variable Documentation

◆ index_map

auto anonymous_namespace{model.cpp}::index_map
Initial value:
= []() {
using Vertex = nngn::Vertex;
constexpr auto map_hash = [](const Vertex &v) {
constexpr auto hash = [](nngn::vec3 x) {
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;
};
return ((hash(v.pos) ^ (hash(v.norm) << 1)) >> 1)
^ (hash(v.color) << 1);
};
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<
Vertex, u32, , >;
return T(16, map_hash, map_cmp);
}
v[1]
Definition: math.lua:19
#define T(f0, f1, f2)
std::uint32_t u32
Definition: def.h:14
Hash hash(std::span< const char > s)
Definition: hash.h:12
Definition: graphics.h:136