#pragma once #include #include #include namespace mbgl { struct Anchor; class PositionedIcon; namespace style { class SymbolLayoutProperties; } // namespace style struct SymbolQuad { explicit SymbolQuad(Point tl_, Point tr_, Point bl_, Point br_, Rect tex_, float anchorAngle_, float glyphAngle_, Point anchorPoint_, float minScale_, float maxScale_) : 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_) {} Point tl, tr, bl, br; Rect tex; float anchorAngle, glyphAngle; Point anchorPoint; float minScale, maxScale; }; typedef std::vector SymbolQuads; SymbolQuads getIconQuads(Anchor& anchor, const PositionedIcon& shapedIcon, const GeometryCoordinates& line, const style::SymbolLayoutProperties&, const bool alongLine, const Shaping& shapedText); SymbolQuads getGlyphQuads(Anchor& anchor, const Shaping& shapedText, const float boxScale, const GeometryCoordinates& line, const style::SymbolLayoutProperties&, const bool alongLine, const GlyphPositions& face); } // namespace mbgl