载入中...
搜索中...
未找到
Semantic.cpp
浏览该文件的文档.
1#include "procgen/Semantic.h"
2
3#include <unordered_map>
4
5namespace eve::procgen {
6namespace {
7
8const std::unordered_map<std::string, uint32_t> &nameToId() {
9 static const std::unordered_map<std::string, uint32_t> m = {
10 {"empty", Semantic::Empty}, {"wall", Semantic::Wall},
11 {"floor", Semantic::Floor}, {"corridor", Semantic::Corridor},
12 {"water", Semantic::Water}, {"sand", Semantic::Sand},
13 {"grass", Semantic::Grass}, {"dirt", Semantic::Dirt},
14 {"stone", Semantic::Stone}, {"snow", Semantic::Snow},
15 {"door", Semantic::Door}, {"road", Semantic::Road},
16 };
17 return m;
18}
19
20} // namespace
21
22const char *semanticName(uint32_t id) {
23 switch (id) {
24 case Semantic::Empty: return "empty";
25 case Semantic::Wall: return "wall";
26 case Semantic::Floor: return "floor";
27 case Semantic::Corridor: return "corridor";
28 case Semantic::Water: return "water";
29 case Semantic::Sand: return "sand";
30 case Semantic::Grass: return "grass";
31 case Semantic::Dirt: return "dirt";
32 case Semantic::Stone: return "stone";
33 case Semantic::Snow: return "snow";
34 case Semantic::Door: return "door";
35 case Semantic::Road: return "road";
36 default: return "unknown";
37 }
38}
39
40uint32_t semanticId(const std::string &name) {
41 auto it = nameToId().find(name);
42 return it == nameToId().end() ? Semantic::Empty : it->second;
43}
44
45} // namespace eve::procgen
std::string name
float m[16]
constexpr uint32_t Floor
Definition Semantic.h:14
constexpr uint32_t Grass
Definition Semantic.h:18
constexpr uint32_t Stone
Definition Semantic.h:20
constexpr uint32_t Wall
Definition Semantic.h:13
constexpr uint32_t Road
Definition Semantic.h:23
constexpr uint32_t Sand
Definition Semantic.h:17
constexpr uint32_t Dirt
Definition Semantic.h:19
constexpr uint32_t Corridor
Definition Semantic.h:15
constexpr uint32_t Empty
Definition Semantic.h:12
constexpr uint32_t Door
Definition Semantic.h:22
constexpr uint32_t Water
Definition Semantic.h:16
constexpr uint32_t Snow
Definition Semantic.h:21
const char * semanticName(uint32_t id)
Semantic name.
Definition Semantic.cpp:22
uint32_t semanticId(const std::string &name)
Semantic id.
Definition Semantic.cpp:40