summaryrefslogtreecommitdiff
path: root/include/mbgl/annotation/shape_annotation.hpp
blob: 90f2a96dd0e96c730b33ceb0591f0869a71a5e22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef MBGL_ANNOTATION_SHAPE_ANNOTATION
#define MBGL_ANNOTATION_SHAPE_ANNOTATION

#include <mbgl/annotation/annotation.hpp>
#include <mbgl/style/style_properties.hpp>

#include <mbgl/util/geo.hpp>

#include <mapbox/variant.hpp>

namespace mbgl {

using AnnotationSegment = std::vector<LatLng>;
using AnnotationSegments = std::vector<AnnotationSegment>;

class ShapeAnnotation {
public:
    using Properties = mapbox::util::variant<
        FillPaintProperties, // creates a fill annotation
        LinePaintProperties, // creates a line annotation
        std::string>;        // creates an annotation whose type and properties are sourced from a style layer

    ShapeAnnotation(const AnnotationSegments& segments_, const Properties& properties_)
        : segments(segments_), properties(properties_) {
    }

    const AnnotationSegments segments;
    const Properties properties;
};

}

#endif