1 #pragma once 2 3 #include <mbgl/text/glyph_atlas.hpp> 4 #include <mbgl/style/types.hpp> 5 #include <mbgl/style/layers/symbol_layer_properties.hpp> 6 #include <mbgl/tile/geometry_tile_data.hpp> 7 8 #include <vector> 9 10 namespace mbgl { 11 12 class Anchor; 13 class PositionedIcon; 14 15 class SymbolQuad { 16 public: SymbolQuad(Point<float> tl_,Point<float> tr_,Point<float> bl_,Point<float> br_,Rect<uint16_t> tex_,WritingModeType writingMode_,Point<float> glyphOffset_)17 SymbolQuad(Point<float> tl_, 18 Point<float> tr_, 19 Point<float> bl_, 20 Point<float> br_, 21 Rect<uint16_t> tex_, 22 WritingModeType writingMode_, 23 Point<float> glyphOffset_) 24 : tl(std::move(tl_)), 25 tr(std::move(tr_)), 26 bl(std::move(bl_)), 27 br(std::move(br_)), 28 tex(std::move(tex_)), 29 writingMode(writingMode_), 30 glyphOffset(glyphOffset_) {} 31 32 Point<float> tl; 33 Point<float> tr; 34 Point<float> bl; 35 Point<float> br; 36 Rect<uint16_t> tex; 37 WritingModeType writingMode; 38 Point<float> glyphOffset; 39 }; 40 41 using SymbolQuads = std::vector<SymbolQuad>; 42 43 SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, 44 const style::SymbolLayoutProperties::Evaluated&, 45 const float layoutTextSize, 46 const Shaping& shapedText); 47 48 SymbolQuads getGlyphQuads(const Shaping& shapedText, 49 const style::SymbolLayoutProperties::Evaluated&, 50 style::SymbolPlacementType placement, 51 const GlyphPositionMap& positions); 52 53 } // namespace mbgl 54