#pragma once #include #include #include #include namespace mbgl { class Anchor; class IndexedSubfeature; class SymbolInstance { public: SymbolInstance(Anchor& anchor, GeometryCoordinates line, const std::pair& shapedTextOrientations, optional shapedIcon, const style::SymbolLayoutProperties::Evaluated&, const float layoutTextSize, const float textBoxScale, const float textPadding, style::SymbolPlacementType textPlacement, const std::array textOffset, const float iconBoxScale, const float iconPadding, const std::array iconOffset, const GlyphPositions&, const IndexedSubfeature&, const std::size_t layoutFeatureIndex, const std::size_t dataFeatureIndex, const std::u16string& key, const float overscaling, const float rotate); Anchor anchor; GeometryCoordinates line; bool hasText; bool hasIcon; SymbolQuads horizontalGlyphQuads; SymbolQuads verticalGlyphQuads; optional iconQuad; CollisionFeature textCollisionFeature; CollisionFeature iconCollisionFeature; WritingModeType writingModes; std::size_t layoutFeatureIndex; // Index into the set of features included at layout time std::size_t dataFeatureIndex; // Index into the underlying tile data feature set std::array textOffset; std::array iconOffset; std::u16string key; bool isDuplicate; optional placedTextIndex; optional placedVerticalTextIndex; optional placedIconIndex; uint32_t crossTileID = 0; }; } // namespace mbgl