#pragma once #include #include #include #include #include namespace mbgl { class Anchor; class PositionedIcon; class SymbolQuad { public: SymbolQuad(Point tl_, Point tr_, Point bl_, Point br_, Rect tex_, float anchorAngle_, float glyphAngle_, Point anchorPoint_, float minScale_, float maxScale_, WritingModeType writingMode_) : tl(std::move(tl_)), tr(std::move(tr_)), bl(std::move(bl_)), br(std::move(br_)), tex(std::move(tex_)), anchorAngle(anchorAngle_), glyphAngle(glyphAngle_), anchorPoint(std::move(anchorPoint_)), minScale(minScale_), maxScale(maxScale_), writingMode(writingMode_) {} Point tl; Point tr; Point bl; Point br; Rect tex; float anchorAngle, glyphAngle; Point anchorPoint; float minScale; float maxScale; WritingModeType writingMode; }; typedef std::vector SymbolQuads; SymbolQuad getIconQuad(const Anchor& anchor, const PositionedIcon& shapedIcon, const GeometryCoordinates& line, const style::SymbolLayoutProperties::Evaluated&, const float layoutTextSize, style::SymbolPlacementType placement, const Shaping& shapedText); SymbolQuads getGlyphQuads(Anchor& anchor, const Shaping& shapedText, const float boxScale, const GeometryCoordinates& line, const style::SymbolLayoutProperties::Evaluated&, style::SymbolPlacementType placement, const GlyphPositions& face); } // namespace mbgl