diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-05-31 17:34:11 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-01 17:37:01 -0700 |
commit | 0fba70d5a8465499b0dce900e5aa74f7189e4594 (patch) | |
tree | 7902b9bd29d25de0de6d116fc3245b1b269477f4 /include/mbgl/annotation | |
parent | cfd6757ecc9bd4d9b1f4c5266d19da48c529f58b (diff) | |
download | qtlocation-mapboxgl-0fba70d5a8465499b0dce900e5aa74f7189e4594.tar.gz |
[all] Rationalize annotation API
Diffstat (limited to 'include/mbgl/annotation')
-rw-r--r-- | include/mbgl/annotation/annotation.hpp | 41 | ||||
-rw-r--r-- | include/mbgl/annotation/point_annotation.hpp | 18 | ||||
-rw-r--r-- | include/mbgl/annotation/shape_annotation.hpp | 37 |
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 |