#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