summaryrefslogtreecommitdiff
path: root/include/mbgl/annotation/annotation.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/annotation/annotation.hpp')
-rw-r--r--include/mbgl/annotation/annotation.hpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/include/mbgl/annotation/annotation.hpp b/include/mbgl/annotation/annotation.hpp
index 52916549c9..3b2b7f3ade 100644
--- a/include/mbgl/annotation/annotation.hpp
+++ b/include/mbgl/annotation/annotation.hpp
@@ -1,11 +1,52 @@
#pragma once
+#include <mbgl/style/types.hpp>
+
+#include <mbgl/util/geometry.hpp>
+#include <mbgl/util/variant.hpp>
+
#include <cstdint>
#include <vector>
+#include <string>
namespace mbgl {
using AnnotationID = uint32_t;
using AnnotationIDs = std::vector<AnnotationID>;
+class SymbolAnnotation {
+public:
+ Geometry<double> geometry;
+ std::string icon;
+};
+
+class LineAnnotation {
+public:
+ Geometry<double> geometry;
+ float opacity = 1;
+ float width = 1;
+ Color color = {{ 0, 0, 0, 1 }};
+};
+
+class FillAnnotation {
+public:
+ Geometry<double> 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:
+ Geometry<double> geometry;
+ std::string layerID;
+};
+
+using Annotation = variant<
+ SymbolAnnotation,
+ LineAnnotation,
+ FillAnnotation,
+ StyleSourcedAnnotation>;
+
} // namespace mbgl