#pragma once #include #include #include #include #include #include namespace mbgl { using AnnotationID = uint32_t; using AnnotationIDs = std::vector; class SymbolAnnotation { public: Point geometry; std::string icon; }; using ShapeAnnotationGeometry = variant< LineString, Polygon, MultiLineString, MultiPolygon>; class LineAnnotation { public: ShapeAnnotationGeometry geometry; float opacity = 1; float width = 1; Color color = {{ 0, 0, 0, 1 }}; }; class FillAnnotation { public: ShapeAnnotationGeometry geometry; float opacity = 1; Color color = {{ 0, 0, 0, 1 }}; Color outlineColor = {{ 0, 0, 0, -1 }}; }; // An annotation whose type and properties are sourced from a style layer. class StyleSourcedAnnotation { public: ShapeAnnotationGeometry geometry; std::string layerID; }; using Annotation = variant< SymbolAnnotation, LineAnnotation, FillAnnotation, StyleSourcedAnnotation>; } // namespace mbgl