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 HillshadeLayer : public Layer {
18 public:
19     HillshadeLayer(const std::string& layerID, const std::string& sourceID);
20     ~HillshadeLayer() final;
21 
22     // Source
23     const std::string& getSourceID() const;
24 
25     // Visibility
26     void setVisibility(VisibilityType) final;
27 
28     // Zoom range
29     void setMinZoom(float) final;
30     void setMaxZoom(float) final;
31 
32     // Paint properties
33 
34     static PropertyValue<float> getDefaultHillshadeIlluminationDirection();
35     PropertyValue<float> getHillshadeIlluminationDirection() const;
36     void setHillshadeIlluminationDirection(PropertyValue<float>);
37     void setHillshadeIlluminationDirectionTransition(const TransitionOptions&);
38     TransitionOptions getHillshadeIlluminationDirectionTransition() const;
39 
40     static PropertyValue<HillshadeIlluminationAnchorType> getDefaultHillshadeIlluminationAnchor();
41     PropertyValue<HillshadeIlluminationAnchorType> getHillshadeIlluminationAnchor() const;
42     void setHillshadeIlluminationAnchor(PropertyValue<HillshadeIlluminationAnchorType>);
43     void setHillshadeIlluminationAnchorTransition(const TransitionOptions&);
44     TransitionOptions getHillshadeIlluminationAnchorTransition() const;
45 
46     static PropertyValue<float> getDefaultHillshadeExaggeration();
47     PropertyValue<float> getHillshadeExaggeration() const;
48     void setHillshadeExaggeration(PropertyValue<float>);
49     void setHillshadeExaggerationTransition(const TransitionOptions&);
50     TransitionOptions getHillshadeExaggerationTransition() const;
51 
52     static PropertyValue<Color> getDefaultHillshadeShadowColor();
53     PropertyValue<Color> getHillshadeShadowColor() const;
54     void setHillshadeShadowColor(PropertyValue<Color>);
55     void setHillshadeShadowColorTransition(const TransitionOptions&);
56     TransitionOptions getHillshadeShadowColorTransition() const;
57 
58     static PropertyValue<Color> getDefaultHillshadeHighlightColor();
59     PropertyValue<Color> getHillshadeHighlightColor() const;
60     void setHillshadeHighlightColor(PropertyValue<Color>);
61     void setHillshadeHighlightColorTransition(const TransitionOptions&);
62     TransitionOptions getHillshadeHighlightColorTransition() const;
63 
64     static PropertyValue<Color> getDefaultHillshadeAccentColor();
65     PropertyValue<Color> getHillshadeAccentColor() const;
66     void setHillshadeAccentColor(PropertyValue<Color>);
67     void setHillshadeAccentColorTransition(const TransitionOptions&);
68     TransitionOptions getHillshadeAccentColorTransition() const;
69 
70     // Private implementation
71 
72     class Impl;
73     const Impl& impl() const;
74 
75     Mutable<Impl> mutableImpl() const;
76     HillshadeLayer(Immutable<Impl>);
77     std::unique_ptr<Layer> cloneRef(const std::string& id) const final;
78 };
79 
80 template <>
is() const81 inline bool Layer::is<HillshadeLayer>() const {
82     return getType() == LayerType::Hillshade;
83 }
84 
85 } // namespace style
86 } // namespace mbgl
87