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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
#pragma once
#include <mbgl/util/enum.hpp>
#include <string>
#include <array>
#include <vector>
#include <utility>
namespace mbgl {
// Stores a premultiplied color, with all four channels ranging from 0..1
using Color = std::array<float, 4>;
// An array of font names
using FontStack = std::vector<std::string>;
std::string fontStackToString(const FontStack&);
struct FontStackHash {
std::size_t operator()(const FontStack&) const;
};
template <typename T>
class Function {
public:
using Stop = std::pair<float, T>;
using Stops = std::vector<Stop>;
Function(const T& constant)
: stops({{ 0, constant }}) {}
explicit Function(const Stops& stops_, float base_)
: base(base_), stops(stops_) {}
float getBase() const { return base; }
const std::vector<std::pair<float, T>>& getStops() const { return stops; }
private:
float base = 1;
std::vector<std::pair<float, T>> stops;
};
// -------------------------------------------------------------------------------------------------
enum class SourceType : uint8_t {
Vector,
Raster,
GeoJSON,
Video,
Annotations
};
MBGL_DEFINE_ENUM_CLASS(SourceTypeClass, SourceType, {
{ SourceType::Vector, "vector" },
{ SourceType::Raster, "raster" },
{ SourceType::GeoJSON, "geojson" },
{ SourceType::Video, "video" },
{ SourceType::Annotations, "annotations" },
});
// -------------------------------------------------------------------------------------------------
enum class VisibilityType : bool {
Visible,
None,
};
enum class LineCapType : uint8_t {
Round,
Butt,
Square,
};
enum class LineJoinType : uint8_t {
Miter,
Bevel,
Round,
// the following two types are for internal use only
FakeRound,
FlipBevel
};
enum class TranslateAnchorType : bool {
Map,
Viewport
};
enum class RotateAnchorType : bool {
Map,
Viewport,
};
enum class SymbolPlacementType : bool {
Point,
Line,
};
enum class RotationAlignmentType : bool {
Map,
Viewport,
};
enum class TextJustifyType : uint8_t {
Center,
Left,
Right
};
enum class TextAnchorType : uint8_t {
Center,
Left,
Right,
Top,
Bottom,
TopLeft,
TopRight,
BottomLeft,
BottomRight
};
enum class TextTransformType : uint8_t {
None,
Uppercase,
Lowercase,
};
} // namespace mbgl
|