summaryrefslogtreecommitdiff
path: root/include/mbgl/annotation
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-05-31 17:34:11 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-06-01 17:37:01 -0700
commit0fba70d5a8465499b0dce900e5aa74f7189e4594 (patch)
tree7902b9bd29d25de0de6d116fc3245b1b269477f4 /include/mbgl/annotation
parentcfd6757ecc9bd4d9b1f4c5266d19da48c529f58b (diff)
downloadqtlocation-mapboxgl-0fba70d5a8465499b0dce900e5aa74f7189e4594.tar.gz
[all] Rationalize annotation API
Diffstat (limited to 'include/mbgl/annotation')
-rw-r--r--include/mbgl/annotation/annotation.hpp41
-rw-r--r--include/mbgl/annotation/point_annotation.hpp18
-rw-r--r--include/mbgl/annotation/shape_annotation.hpp37
3 files changed, 41 insertions, 55 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
diff --git a/include/mbgl/annotation/point_annotation.hpp b/include/mbgl/annotation/point_annotation.hpp
deleted file mode 100644
index c9236c3c04..0000000000
--- a/include/mbgl/annotation/point_annotation.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-#include <mbgl/util/geo.hpp>
-
-#include <string>
-
-namespace mbgl {
-
-class PointAnnotation {
-public:
- PointAnnotation(const LatLng& position_, const std::string& icon_ = "")
- : position(position_.wrapped()), icon(icon_) {}
-
- const LatLng position;
- const std::string icon;
-};
-
-} // namespace mbgl
diff --git a/include/mbgl/annotation/shape_annotation.hpp b/include/mbgl/annotation/shape_annotation.hpp
deleted file mode 100644
index 7dca1ec134..0000000000
--- a/include/mbgl/annotation/shape_annotation.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-
-#include <mbgl/annotation/annotation.hpp>
-#include <mbgl/style/types.hpp>
-
-#include <mbgl/util/geometry.hpp>
-#include <mbgl/util/variant.hpp>
-
-namespace mbgl {
-
-struct FillAnnotationProperties {
- float opacity = 1;
- Color color = {{ 0, 0, 0, 1 }};
- Color outlineColor = {{ 0, 0, 0, -1 }};
-};
-
-struct LineAnnotationProperties {
- float opacity = 1;
- float width = 1;
- Color color = {{ 0, 0, 0, 1 }};
-};
-
-class ShapeAnnotation {
-public:
- using Properties = variant<
- FillAnnotationProperties, // creates a fill annotation
- LineAnnotationProperties, // creates a line annotation
- std::string>; // creates an annotation whose type and properties are sourced from a style layer
-
- ShapeAnnotation(const Geometry<double>& geometry_, const Properties& properties_)
- : geometry(geometry_), properties(properties_) {}
-
- const Geometry<double> geometry;
- const Properties properties;
-};
-
-} // namespace mbgl