diff options
Diffstat (limited to 'src/mbgl/style/function/identity_stops.cpp')
-rw-r--r-- | src/mbgl/style/function/identity_stops.cpp | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/src/mbgl/style/function/identity_stops.cpp b/src/mbgl/style/function/identity_stops.cpp index dfb34e9dd4..0ac6fda846 100644 --- a/src/mbgl/style/function/identity_stops.cpp +++ b/src/mbgl/style/function/identity_stops.cpp @@ -36,25 +36,53 @@ optional<TextTransformType> IdentityStops<TextTransformType>::evaluate(const Val if (!value.is<std::string>()) { return {}; } - + return Enum<TextTransformType>::toEnum(value.get<std::string>()); } template <> +optional<TextJustifyType> IdentityStops<TextJustifyType>::evaluate(const Value& value) const { + if (!value.is<std::string>()) { + return {}; + } + + return Enum<TextJustifyType>::toEnum(value.get<std::string>()); +} + +template <> +optional<SymbolAnchorType> IdentityStops<SymbolAnchorType>::evaluate(const Value& value) const { + if (!value.is<std::string>()) { + return {}; + } + + return Enum<SymbolAnchorType>::toEnum(value.get<std::string>()); +} + +template <> +optional<LineJoinType> IdentityStops<LineJoinType>::evaluate(const Value& value) const { + if (!value.is<std::string>()) { + return {}; + } + + return Enum<LineJoinType>::toEnum(value.get<std::string>()); +} + +template <> optional<std::array<float, 2>> IdentityStops<std::array<float, 2>>::evaluate(const Value& value) const { if (!value.is<std::vector<Value>>()) { return {}; } - const std::vector<Value>& vector = value.get<std::vector<Value>>(); + const auto& vector = value.get<std::vector<Value>>(); if (vector.size() != 2 || !numericValue<float>(vector[0]) || !numericValue<float>(vector[1])) { return {}; } - return {{{ + std::array<float, 2> array {{ *numericValue<float>(vector[0]), *numericValue<float>(vector[1]) - }}}; + }}; + return array; } } // namespace style |