diff options
author | zmiao <zmiao.jamie@gmail.com> | 2019-08-26 16:30:35 +0300 |
---|---|---|
committer | zmiao <zmiao.jamie@gmail.com> | 2019-08-26 16:30:35 +0300 |
commit | 61faf2b15bacd22e154eadb115501c6c4579ff65 (patch) | |
tree | 987ed4f4f11c4a73d336a2580f0d79a8949e9787 /src/mbgl/layout/symbol_instance.hpp | |
parent | e1047757c7130c1899f48dd36534daa0ffac3c72 (diff) | |
download | qtlocation-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.hpp | 20 |
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; |