summaryrefslogtreecommitdiff
path: root/src/mbgl/style/expression/value.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-08-09 17:51:26 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-08-12 17:14:32 +0300
commit5a752061fe9d84588d4bd70a37d1c3a861eaa206 (patch)
treed53c56dad0d2c6b216dfd1d98f0c2d3acd9b7c49 /src/mbgl/style/expression/value.cpp
parentbc09cdbf76ffa50ccdd8dc8df7997fdd3a0eb0d6 (diff)
downloadqtlocation-mapboxgl-5a752061fe9d84588d4bd70a37d1c3a861eaa206.tar.gz
[core] Enable two-component text radial offsetupstream/mikhail_two_component_text_radial_offset
Diffstat (limited to 'src/mbgl/style/expression/value.cpp')
-rw-r--r--src/mbgl/style/expression/value.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mbgl/style/expression/value.cpp b/src/mbgl/style/expression/value.cpp
index 7e11efaa09..6fce98e4d6 100644
--- a/src/mbgl/style/expression/value.cpp
+++ b/src/mbgl/style/expression/value.cpp
@@ -276,6 +276,22 @@ optional<Position> ValueConverter<Position>::fromExpressionValue(const Value& v)
return pos ? optional<Position>(Position(*pos)) : optional<Position>();
}
+Value ValueConverter<RadialOffsetType>::toExpressionValue(const mbgl::style::RadialOffsetType& value) {
+ return ValueConverter<std::vector<float>>::toExpressionValue(value);
+}
+
+optional<RadialOffsetType> ValueConverter<RadialOffsetType>::fromExpressionValue(const Value& v) {
+ if (auto val = ValueConverter<std::vector<float>>::fromExpressionValue(v)) {
+ RadialOffsetType result(std::move(*val));
+ return result;
+ }
+ if (auto val = ValueConverter<float>::fromExpressionValue(v)) {
+ RadialOffsetType result(2, *val);
+ return result;
+ }
+ return nullopt;
+}
+
template <typename T>
Value ValueConverter<T, std::enable_if_t< std::is_enum<T>::value >>::toExpressionValue(const T& value) {
return std::string(Enum<T>::toString(value));
@@ -374,6 +390,10 @@ template struct ValueConverter<HillshadeIlluminationAnchorType>;
template type::Type valueTypeToExpressionType<LightAnchorType>();
template struct ValueConverter<LightAnchorType>;
+template<> type::Type valueTypeToExpressionType<RadialOffsetType>() {
+ return valueTypeToExpressionType<std::vector<float>>();
+}
+
} // namespace expression
} // namespace style
} // namespace mbgl