1 // This file is generated. Do not edit.
2 
3 #pragma once
4 
5 #include <mbgl/style/layer.hpp>
6 #include <mbgl/style/filter.hpp>
7 #include <mbgl/style/property_value.hpp>
8 #include <mbgl/style/data_driven_property_value.hpp>
9 
10 #include <mbgl/util/color.hpp>
11 
12 #include <vector>
13 
14 namespace mbgl {
15 namespace style {
16 
17 class TransitionOptions;
18 
19 class LineLayer : public Layer {
20 public:
21     LineLayer(const std::string& layerID, const std::string& sourceID);
22     ~LineLayer() final;
23 
24     // Source
25     const std::string& getSourceID() const;
26     const std::string& getSourceLayer() const;
27     void setSourceLayer(const std::string& sourceLayer);
28 
29     void setFilter(const Filter&);
30     const Filter& getFilter() const;
31 
32     // Visibility
33     void setVisibility(VisibilityType) final;
34 
35     // Zoom range
36     void setMinZoom(float) final;
37     void setMaxZoom(float) final;
38 
39     // Layout properties
40 
41     static PropertyValue<LineCapType> getDefaultLineCap();
42     PropertyValue<LineCapType> getLineCap() const;
43     void setLineCap(PropertyValue<LineCapType>);
44 
45     static DataDrivenPropertyValue<LineJoinType> getDefaultLineJoin();
46     DataDrivenPropertyValue<LineJoinType> getLineJoin() const;
47     void setLineJoin(DataDrivenPropertyValue<LineJoinType>);
48 
49     static PropertyValue<float> getDefaultLineMiterLimit();
50     PropertyValue<float> getLineMiterLimit() const;
51     void setLineMiterLimit(PropertyValue<float>);
52 
53     static PropertyValue<float> getDefaultLineRoundLimit();
54     PropertyValue<float> getLineRoundLimit() const;
55     void setLineRoundLimit(PropertyValue<float>);
56 
57     // Paint properties
58 
59     static DataDrivenPropertyValue<float> getDefaultLineOpacity();
60     DataDrivenPropertyValue<float> getLineOpacity() const;
61     void setLineOpacity(DataDrivenPropertyValue<float>);
62     void setLineOpacityTransition(const TransitionOptions&);
63     TransitionOptions getLineOpacityTransition() const;
64 
65     static DataDrivenPropertyValue<Color> getDefaultLineColor();
66     DataDrivenPropertyValue<Color> getLineColor() const;
67     void setLineColor(DataDrivenPropertyValue<Color>);
68     void setLineColorTransition(const TransitionOptions&);
69     TransitionOptions getLineColorTransition() const;
70 
71     static PropertyValue<std::array<float, 2>> getDefaultLineTranslate();
72     PropertyValue<std::array<float, 2>> getLineTranslate() const;
73     void setLineTranslate(PropertyValue<std::array<float, 2>>);
74     void setLineTranslateTransition(const TransitionOptions&);
75     TransitionOptions getLineTranslateTransition() const;
76 
77     static PropertyValue<TranslateAnchorType> getDefaultLineTranslateAnchor();
78     PropertyValue<TranslateAnchorType> getLineTranslateAnchor() const;
79     void setLineTranslateAnchor(PropertyValue<TranslateAnchorType>);
80     void setLineTranslateAnchorTransition(const TransitionOptions&);
81     TransitionOptions getLineTranslateAnchorTransition() const;
82 
83     static DataDrivenPropertyValue<float> getDefaultLineWidth();
84     DataDrivenPropertyValue<float> getLineWidth() const;
85     void setLineWidth(DataDrivenPropertyValue<float>);
86     void setLineWidthTransition(const TransitionOptions&);
87     TransitionOptions getLineWidthTransition() const;
88 
89     static DataDrivenPropertyValue<float> getDefaultLineGapWidth();
90     DataDrivenPropertyValue<float> getLineGapWidth() const;
91     void setLineGapWidth(DataDrivenPropertyValue<float>);
92     void setLineGapWidthTransition(const TransitionOptions&);
93     TransitionOptions getLineGapWidthTransition() const;
94 
95     static DataDrivenPropertyValue<float> getDefaultLineOffset();
96     DataDrivenPropertyValue<float> getLineOffset() const;
97     void setLineOffset(DataDrivenPropertyValue<float>);
98     void setLineOffsetTransition(const TransitionOptions&);
99     TransitionOptions getLineOffsetTransition() const;
100 
101     static DataDrivenPropertyValue<float> getDefaultLineBlur();
102     DataDrivenPropertyValue<float> getLineBlur() const;
103     void setLineBlur(DataDrivenPropertyValue<float>);
104     void setLineBlurTransition(const TransitionOptions&);
105     TransitionOptions getLineBlurTransition() const;
106 
107     static PropertyValue<std::vector<float>> getDefaultLineDasharray();
108     PropertyValue<std::vector<float>> getLineDasharray() const;
109     void setLineDasharray(PropertyValue<std::vector<float>>);
110     void setLineDasharrayTransition(const TransitionOptions&);
111     TransitionOptions getLineDasharrayTransition() const;
112 
113     static PropertyValue<std::string> getDefaultLinePattern();
114     PropertyValue<std::string> getLinePattern() const;
115     void setLinePattern(PropertyValue<std::string>);
116     void setLinePatternTransition(const TransitionOptions&);
117     TransitionOptions getLinePatternTransition() const;
118 
119     // Private implementation
120 
121     class Impl;
122     const Impl& impl() const;
123 
124     Mutable<Impl> mutableImpl() const;
125     LineLayer(Immutable<Impl>);
126     std::unique_ptr<Layer> cloneRef(const std::string& id) const final;
127 };
128 
129 template <>
is() const130 inline bool Layer::is<LineLayer>() const {
131     return getType() == LayerType::Line;
132 }
133 
134 } // namespace style
135 } // namespace mbgl
136