/
ParseLib.h
95 lines (83 loc) · 2.54 KB
/
ParseLib.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma once
#include <map>
#include "ishaders.h"
namespace shaders
{
constexpr std::pair<const char*, Material::SurfaceType> SurfaceTypeMapping[]
{
{ "metal", Material::SURFTYPE_METAL },
{ "stone", Material::SURFTYPE_STONE },
{ "flesh", Material::SURFTYPE_FLESH },
{ "wood", Material::SURFTYPE_WOOD },
{ "cardboard", Material::SURFTYPE_CARDBOARD },
{ "liquid", Material::SURFTYPE_LIQUID },
{ "glass", Material::SURFTYPE_GLASS },
{ "plastic", Material::SURFTYPE_PLASTIC },
{ "ricochet", Material::SURFTYPE_RICOCHET },
{ "surftype10", Material::SURFTYPE_10 },
{ "surftype11", Material::SURFTYPE_11 },
{ "surftype12", Material::SURFTYPE_12 },
{ "surftype13", Material::SURFTYPE_13 },
{ "surftype14", Material::SURFTYPE_14 },
{ "surftype15", Material::SURFTYPE_15 }
};
inline std::string getStringForSurfaceType(Material::SurfaceType type)
{
for (const auto& pair : SurfaceTypeMapping)
{
if (type == pair.second)
{
return pair.first;
}
}
return std::string();
}
constexpr std::pair<const char*, Material::SortRequest> PredefinedSortValues[]
{
{ "subview", Material::SORT_SUBVIEW },
{ "opaque", Material::SORT_OPAQUE },
{ "decal", Material::SORT_DECAL },
{ "far", Material::SORT_FAR },
{ "medium", Material::SORT_MEDIUM },
{ "close", Material::SORT_CLOSE },
{ "almostnearest", Material::SORT_ALMOST_NEAREST },
{ "nearest", Material::SORT_NEAREST },
{ "afterfog", Material::SORT_AFTER_FOG },
{ "postprocess", Material::SORT_POST_PROCESS },
{ "portalsky", Material::SORT_PORTAL_SKY },
};
inline std::string getStringForSortRequestValue(float value)
{
for (const auto& pair : PredefinedSortValues)
{
if (value == pair.second)
{
return pair.first;
}
}
return std::string();
}
constexpr std::pair<const char*, Material::DeformType> DeformTypeNames[]
{
{ "sprite", Material::DEFORM_SPRITE },
{ "tube", Material::DEFORM_TUBE },
{ "flare", Material::DEFORM_FLARE },
{ "expand", Material::DEFORM_EXPAND },
{ "move", Material::DEFORM_MOVE },
{ "turbulent", Material::DEFORM_TURBULENT },
{ "eyeball", Material::DEFORM_EYEBALL },
{ "particle", Material::DEFORM_PARTICLE },
{ "particle2", Material::DEFORM_PARTICLE2 },
};
inline std::string getStringForDeformType(Material::DeformType type)
{
for (const auto& pair : DeformTypeNames)
{
if (type == pair.second)
{
return pair.first;
}
}
return std::string();
}
}