#pragma once #include #include #include #include #include #include namespace mbgl { class Anchor; class PositionedIcon; enum class SymbolContent : uint8_t; class SymbolQuad { public: SymbolQuad(Point tl_, Point tr_, Point bl_, Point br_, Rect tex_, WritingModeType writingMode_, Point glyphOffset_, bool isSDF_, Point pixelOffsetTL_, Point pixelOffsetBR_, Point minFontScale_, size_t sectionIndex_ = 0) : tl(tl_), tr(tr_), bl(bl_), br(br_), tex(tex_), pixelOffsetTL(pixelOffsetTL_), pixelOffsetBR(pixelOffsetBR_), glyphOffset(glyphOffset_), writingMode(writingMode_), isSDF(isSDF_), sectionIndex(sectionIndex_), minFontScale(minFontScale_) {} Point tl; Point tr; Point bl; Point br; Rect tex; Point pixelOffsetTL; Point pixelOffsetBR; Point glyphOffset; WritingModeType writingMode; bool isSDF; size_t sectionIndex; Point minFontScale; }; using SymbolQuads = std::vector; SymbolQuads getIconQuads(const PositionedIcon& shapedIcon, float iconRotate, SymbolContent iconType, bool hasIconTextFit); SymbolQuads getGlyphQuads(const Shaping& shapedText, std::array textOffset, const style::SymbolLayoutProperties::Evaluated&, style::SymbolPlacementType placement, const ImageMap& imageMap, bool allowVerticalPlacement); } // namespace mbgl