#pragma once #include #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; style::PropertyValue opacity { 1.0f }; style::PropertyValue width { 1.0f }; style::PropertyValue color { Color::black() }; }; class FillAnnotation { public: ShapeAnnotationGeometry geometry; style::PropertyValue opacity { 1.0f }; style::PropertyValue color { Color::black() }; style::PropertyValue outlineColor {}; }; // 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