summaryrefslogtreecommitdiff
path: root/src/mbgl/layout/symbol_instance.hpp
diff options
context:
space:
mode:
authorzmiao <zmiao.jamie@gmail.com>2019-08-26 16:30:35 +0300
committerzmiao <zmiao.jamie@gmail.com>2019-08-26 16:30:35 +0300
commit61faf2b15bacd22e154eadb115501c6c4579ff65 (patch)
tree987ed4f4f11c4a73d336a2580f0d79a8949e9787 /src/mbgl/layout/symbol_instance.hpp
parente1047757c7130c1899f48dd36534daa0ffac3c72 (diff)
downloadqtlocation-mapboxgl-61faf2b15bacd22e154eadb115501c6c4579ff65.tar.gz
provide bitwise operator for SymbolContent enum
Diffstat (limited to 'src/mbgl/layout/symbol_instance.hpp')
-rw-r--r--src/mbgl/layout/symbol_instance.hpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp
index 01e40c1970..2471ddc40d 100644
--- a/src/mbgl/layout/symbol_instance.hpp
+++ b/src/mbgl/layout/symbol_instance.hpp
@@ -4,7 +4,7 @@
#include <mbgl/text/glyph_atlas.hpp>
#include <mbgl/text/collision_feature.hpp>
#include <mbgl/style/layers/symbol_layer_properties.hpp>
-
+#include <mbgl/util/traits.hpp>
namespace mbgl {
@@ -45,10 +45,22 @@ struct SymbolInstanceSharedData {
enum class SymbolContent : uint8_t {
None = 0,
Text = 1 << 0,
- IconRGBA= 1 << 1,
+ IconRGBA = 1 << 1,
IconSDF = 1 << 2
};
+constexpr SymbolContent operator|(SymbolContent a, SymbolContent b) {
+ return SymbolContent(mbgl::underlying_type(a) | mbgl::underlying_type(b));
+}
+
+constexpr SymbolContent& operator|=(SymbolContent& a, SymbolContent b) {
+ return (a = a | b);
+}
+
+constexpr SymbolContent operator&(SymbolContent a, SymbolContent b) {
+ return SymbolContent(mbgl::underlying_type(a) & mbgl::underlying_type(b));
+}
+
class SymbolInstance {
public:
SymbolInstance(Anchor& anchor_,
@@ -72,7 +84,7 @@ public:
const float textRotation,
float radialTextOffset,
bool allowVerticalPlacement,
- const SymbolContent& iconType = SymbolContent::None);
+ const SymbolContent iconType = SymbolContent::None);
optional<size_t> getDefaultHorizontalPlacedTextIndex() const;
const GeometryCoordinates& line() const;
@@ -92,7 +104,7 @@ private:
public:
Anchor anchor;
- uint8_t symbolContent;
+ SymbolContent symbolContent;
std::size_t rightJustifiedGlyphQuadsSize;
std::size_t centerJustifiedGlyphQuadsSize;