From b2f60a4bf2fb95c107bb94543ba6345779970e98 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 30 Jul 2018 08:38:14 -0700 Subject: [core] Eliminate setProperty & co. --- src/mbgl/style/layers/hillshade_layer.cpp | 160 ++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) (limited to 'src/mbgl/style/layers/hillshade_layer.cpp') diff --git a/src/mbgl/style/layers/hillshade_layer.cpp b/src/mbgl/style/layers/hillshade_layer.cpp index e352ae090c..2d8c837baa 100644 --- a/src/mbgl/style/layers/hillshade_layer.cpp +++ b/src/mbgl/style/layers/hillshade_layer.cpp @@ -3,6 +3,12 @@ #include #include #include +#include +#include +#include +#include +#include +#include namespace mbgl { namespace style { @@ -236,5 +242,159 @@ TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const { return impl().paint.template get().options; } +using namespace conversion; + +optional HillshadeLayer::setPaintProperty(const std::string& name, const Convertible& value) { + + if (name == "hillshade-illumination-direction") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeIlluminationDirection(*typedValue); + return nullopt; + } + if (name == "hillshade-illumination-direction-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeIlluminationDirectionTransition(*transition); + return nullopt; + } + + if (name == "hillshade-illumination-anchor") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeIlluminationAnchor(*typedValue); + return nullopt; + } + if (name == "hillshade-illumination-anchor-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeIlluminationAnchorTransition(*transition); + return nullopt; + } + + if (name == "hillshade-exaggeration") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeExaggeration(*typedValue); + return nullopt; + } + if (name == "hillshade-exaggeration-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeExaggerationTransition(*transition); + return nullopt; + } + + if (name == "hillshade-shadow-color") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeShadowColor(*typedValue); + return nullopt; + } + if (name == "hillshade-shadow-color-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeShadowColorTransition(*transition); + return nullopt; + } + + if (name == "hillshade-highlight-color") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeHighlightColor(*typedValue); + return nullopt; + } + if (name == "hillshade-highlight-color-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeHighlightColorTransition(*transition); + return nullopt; + } + + if (name == "hillshade-accent-color") { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setHillshadeAccentColor(*typedValue); + return nullopt; + } + if (name == "hillshade-accent-color-transition") { + Error error; + optional transition = convert(value, error); + if (!transition) { + return error; + } + + setHillshadeAccentColorTransition(*transition); + return nullopt; + } + + return Error { "layer doesn't support this property" }; +} + +optional HillshadeLayer::setLayoutProperty(const std::string& name, const Convertible& value) { + if (name == "visibility") { + if (isUndefined(value)) { + setVisibility(VisibilityType::Visible); + return nullopt; + } + + Error error; + optional visibility = convert(value, error); + if (!visibility) { + return error; + } + + setVisibility(*visibility); + return nullopt; + } + + + return Error { "layer doesn't support this property" }; +} + } // namespace style } // namespace mbgl -- cgit v1.2.1