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 namespace mbgl {
13 namespace style {
14 
15 class TransitionOptions;
16 
17 class FillExtrusionLayer : public Layer {
18 public:
19     FillExtrusionLayer(const std::string& layerID, const std::string& sourceID);
20     ~FillExtrusionLayer() final;
21 
22     // Source
23     const std::string& getSourceID() const;
24     const std::string& getSourceLayer() const;
25     void setSourceLayer(const std::string& sourceLayer);
26 
27     void setFilter(const Filter&);
28     const Filter& getFilter() const;
29 
30     // Visibility
31     void setVisibility(VisibilityType) final;
32 
33     // Zoom range
34     void setMinZoom(float) final;
35     void setMaxZoom(float) final;
36 
37     // Paint properties
38 
39     static PropertyValue<float> getDefaultFillExtrusionOpacity();
40     PropertyValue<float> getFillExtrusionOpacity() const;
41     void setFillExtrusionOpacity(PropertyValue<float>);
42     void setFillExtrusionOpacityTransition(const TransitionOptions&);
43     TransitionOptions getFillExtrusionOpacityTransition() const;
44 
45     static DataDrivenPropertyValue<Color> getDefaultFillExtrusionColor();
46     DataDrivenPropertyValue<Color> getFillExtrusionColor() const;
47     void setFillExtrusionColor(DataDrivenPropertyValue<Color>);
48     void setFillExtrusionColorTransition(const TransitionOptions&);
49     TransitionOptions getFillExtrusionColorTransition() const;
50 
51     static PropertyValue<std::array<float, 2>> getDefaultFillExtrusionTranslate();
52     PropertyValue<std::array<float, 2>> getFillExtrusionTranslate() const;
53     void setFillExtrusionTranslate(PropertyValue<std::array<float, 2>>);
54     void setFillExtrusionTranslateTransition(const TransitionOptions&);
55     TransitionOptions getFillExtrusionTranslateTransition() const;
56 
57     static PropertyValue<TranslateAnchorType> getDefaultFillExtrusionTranslateAnchor();
58     PropertyValue<TranslateAnchorType> getFillExtrusionTranslateAnchor() const;
59     void setFillExtrusionTranslateAnchor(PropertyValue<TranslateAnchorType>);
60     void setFillExtrusionTranslateAnchorTransition(const TransitionOptions&);
61     TransitionOptions getFillExtrusionTranslateAnchorTransition() const;
62 
63     static PropertyValue<std::string> getDefaultFillExtrusionPattern();
64     PropertyValue<std::string> getFillExtrusionPattern() const;
65     void setFillExtrusionPattern(PropertyValue<std::string>);
66     void setFillExtrusionPatternTransition(const TransitionOptions&);
67     TransitionOptions getFillExtrusionPatternTransition() const;
68 
69     static DataDrivenPropertyValue<float> getDefaultFillExtrusionHeight();
70     DataDrivenPropertyValue<float> getFillExtrusionHeight() const;
71     void setFillExtrusionHeight(DataDrivenPropertyValue<float>);
72     void setFillExtrusionHeightTransition(const TransitionOptions&);
73     TransitionOptions getFillExtrusionHeightTransition() const;
74 
75     static DataDrivenPropertyValue<float> getDefaultFillExtrusionBase();
76     DataDrivenPropertyValue<float> getFillExtrusionBase() const;
77     void setFillExtrusionBase(DataDrivenPropertyValue<float>);
78     void setFillExtrusionBaseTransition(const TransitionOptions&);
79     TransitionOptions getFillExtrusionBaseTransition() const;
80 
81     // Private implementation
82 
83     class Impl;
84     const Impl& impl() const;
85 
86     Mutable<Impl> mutableImpl() const;
87     FillExtrusionLayer(Immutable<Impl>);
88     std::unique_ptr<Layer> cloneRef(const std::string& id) const final;
89 };
90 
91 template <>
is() const92 inline bool Layer::is<FillExtrusionLayer>() const {
93     return getType() == LayerType::FillExtrusion;
94 }
95 
96 } // namespace style
97 } // namespace mbgl
98