diff options
Diffstat (limited to 'src/mbgl/style/layers/fill_extrusion_layer.cpp')
-rw-r--r-- | src/mbgl/style/layers/fill_extrusion_layer.cpp | 210 |
1 files changed, 105 insertions, 105 deletions
diff --git a/src/mbgl/style/layers/fill_extrusion_layer.cpp b/src/mbgl/style/layers/fill_extrusion_layer.cpp index 89796f098c..d477bf7262 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer.cpp +++ b/src/mbgl/style/layers/fill_extrusion_layer.cpp @@ -63,31 +63,31 @@ void FillExtrusionLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::Stri // Paint properties -PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionOpacity() { - return { 1 }; +PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionBase() { + return { 0 }; } -const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionOpacity() const { - return impl().paint.template get<FillExtrusionOpacity>().value; +const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionBase() const { + return impl().paint.template get<FillExtrusionBase>().value; } -void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue<float>& value) { - if (value == getFillExtrusionOpacity()) +void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue<float>& value) { + if (value == getFillExtrusionBase()) return; auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionOpacity>().value = value; + impl_->paint.template get<FillExtrusionBase>().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillExtrusionLayer::setFillExtrusionOpacityTransition(const TransitionOptions& options) { +void FillExtrusionLayer::setFillExtrusionBaseTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionOpacity>().options = options; + impl_->paint.template get<FillExtrusionBase>().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const { - return impl().paint.template get<FillExtrusionOpacity>().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const { + return impl().paint.template get<FillExtrusionBase>().options; } PropertyValue<Color> FillExtrusionLayer::getDefaultFillExtrusionColor() { @@ -117,58 +117,58 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionColorTransition() const { return impl().paint.template get<FillExtrusionColor>().options; } -PropertyValue<std::array<float, 2>> FillExtrusionLayer::getDefaultFillExtrusionTranslate() { - return { {{ 0, 0 }} }; +PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionHeight() { + return { 0 }; } -const PropertyValue<std::array<float, 2>>& FillExtrusionLayer::getFillExtrusionTranslate() const { - return impl().paint.template get<FillExtrusionTranslate>().value; +const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionHeight() const { + return impl().paint.template get<FillExtrusionHeight>().value; } -void FillExtrusionLayer::setFillExtrusionTranslate(const PropertyValue<std::array<float, 2>>& value) { - if (value == getFillExtrusionTranslate()) +void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue<float>& value) { + if (value == getFillExtrusionHeight()) return; auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionTranslate>().value = value; + impl_->paint.template get<FillExtrusionHeight>().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillExtrusionLayer::setFillExtrusionTranslateTransition(const TransitionOptions& options) { +void FillExtrusionLayer::setFillExtrusionHeightTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionTranslate>().options = options; + impl_->paint.template get<FillExtrusionHeight>().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateTransition() const { - return impl().paint.template get<FillExtrusionTranslate>().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const { + return impl().paint.template get<FillExtrusionHeight>().options; } -PropertyValue<TranslateAnchorType> FillExtrusionLayer::getDefaultFillExtrusionTranslateAnchor() { - return { TranslateAnchorType::Map }; +PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionOpacity() { + return { 1 }; } -const PropertyValue<TranslateAnchorType>& FillExtrusionLayer::getFillExtrusionTranslateAnchor() const { - return impl().paint.template get<FillExtrusionTranslateAnchor>().value; +const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionOpacity() const { + return impl().paint.template get<FillExtrusionOpacity>().value; } -void FillExtrusionLayer::setFillExtrusionTranslateAnchor(const PropertyValue<TranslateAnchorType>& value) { - if (value == getFillExtrusionTranslateAnchor()) +void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue<float>& value) { + if (value == getFillExtrusionOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionTranslateAnchor>().value = value; + impl_->paint.template get<FillExtrusionOpacity>().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillExtrusionLayer::setFillExtrusionTranslateAnchorTransition(const TransitionOptions& options) { +void FillExtrusionLayer::setFillExtrusionOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionTranslateAnchor>().options = options; + impl_->paint.template get<FillExtrusionOpacity>().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateAnchorTransition() const { - return impl().paint.template get<FillExtrusionTranslateAnchor>().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const { + return impl().paint.template get<FillExtrusionOpacity>().options; } PropertyValue<std::string> FillExtrusionLayer::getDefaultFillExtrusionPattern() { @@ -198,58 +198,58 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionPatternTransition() const return impl().paint.template get<FillExtrusionPattern>().options; } -PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionHeight() { - return { 0 }; +PropertyValue<std::array<float, 2>> FillExtrusionLayer::getDefaultFillExtrusionTranslate() { + return { {{ 0, 0 }} }; } -const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionHeight() const { - return impl().paint.template get<FillExtrusionHeight>().value; +const PropertyValue<std::array<float, 2>>& FillExtrusionLayer::getFillExtrusionTranslate() const { + return impl().paint.template get<FillExtrusionTranslate>().value; } -void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue<float>& value) { - if (value == getFillExtrusionHeight()) +void FillExtrusionLayer::setFillExtrusionTranslate(const PropertyValue<std::array<float, 2>>& value) { + if (value == getFillExtrusionTranslate()) return; auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionHeight>().value = value; + impl_->paint.template get<FillExtrusionTranslate>().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillExtrusionLayer::setFillExtrusionHeightTransition(const TransitionOptions& options) { +void FillExtrusionLayer::setFillExtrusionTranslateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionHeight>().options = options; + impl_->paint.template get<FillExtrusionTranslate>().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const { - return impl().paint.template get<FillExtrusionHeight>().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateTransition() const { + return impl().paint.template get<FillExtrusionTranslate>().options; } -PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionBase() { - return { 0 }; +PropertyValue<TranslateAnchorType> FillExtrusionLayer::getDefaultFillExtrusionTranslateAnchor() { + return { TranslateAnchorType::Map }; } -const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionBase() const { - return impl().paint.template get<FillExtrusionBase>().value; +const PropertyValue<TranslateAnchorType>& FillExtrusionLayer::getFillExtrusionTranslateAnchor() const { + return impl().paint.template get<FillExtrusionTranslateAnchor>().value; } -void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue<float>& value) { - if (value == getFillExtrusionBase()) +void FillExtrusionLayer::setFillExtrusionTranslateAnchor(const PropertyValue<TranslateAnchorType>& value) { + if (value == getFillExtrusionTranslateAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionBase>().value = value; + impl_->paint.template get<FillExtrusionTranslateAnchor>().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillExtrusionLayer::setFillExtrusionBaseTransition(const TransitionOptions& options) { +void FillExtrusionLayer::setFillExtrusionTranslateAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get<FillExtrusionBase>().options = options; + impl_->paint.template get<FillExtrusionTranslateAnchor>().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const { - return impl().paint.template get<FillExtrusionBase>().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateAnchorTransition() const { + return impl().paint.template get<FillExtrusionTranslateAnchor>().options; } PropertyValue<bool> FillExtrusionLayer::getDefaultFillExtrusionVerticalGradient() { @@ -283,40 +283,40 @@ using namespace conversion; optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - FillExtrusionOpacity, + FillExtrusionBase, FillExtrusionColor, + FillExtrusionHeight, + FillExtrusionOpacity, + FillExtrusionPattern, FillExtrusionTranslate, FillExtrusionTranslateAnchor, - FillExtrusionPattern, - FillExtrusionHeight, - FillExtrusionBase, FillExtrusionVerticalGradient, - FillExtrusionOpacityTransition, + FillExtrusionBaseTransition, FillExtrusionColorTransition, + FillExtrusionHeightTransition, + FillExtrusionOpacityTransition, + FillExtrusionPatternTransition, FillExtrusionTranslateTransition, FillExtrusionTranslateAnchorTransition, - FillExtrusionPatternTransition, - FillExtrusionHeightTransition, - FillExtrusionBaseTransition, FillExtrusionVerticalGradientTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map<mapbox::eternal::string, uint8_t>({ - { "fill-extrusion-opacity", static_cast<uint8_t>(Property::FillExtrusionOpacity) }, + { "fill-extrusion-base", static_cast<uint8_t>(Property::FillExtrusionBase) }, { "fill-extrusion-color", static_cast<uint8_t>(Property::FillExtrusionColor) }, + { "fill-extrusion-height", static_cast<uint8_t>(Property::FillExtrusionHeight) }, + { "fill-extrusion-opacity", static_cast<uint8_t>(Property::FillExtrusionOpacity) }, + { "fill-extrusion-pattern", static_cast<uint8_t>(Property::FillExtrusionPattern) }, { "fill-extrusion-translate", static_cast<uint8_t>(Property::FillExtrusionTranslate) }, { "fill-extrusion-translate-anchor", static_cast<uint8_t>(Property::FillExtrusionTranslateAnchor) }, - { "fill-extrusion-pattern", static_cast<uint8_t>(Property::FillExtrusionPattern) }, - { "fill-extrusion-height", static_cast<uint8_t>(Property::FillExtrusionHeight) }, - { "fill-extrusion-base", static_cast<uint8_t>(Property::FillExtrusionBase) }, { "fill-extrusion-vertical-gradient", static_cast<uint8_t>(Property::FillExtrusionVerticalGradient) }, - { "fill-extrusion-opacity-transition", static_cast<uint8_t>(Property::FillExtrusionOpacityTransition) }, + { "fill-extrusion-base-transition", static_cast<uint8_t>(Property::FillExtrusionBaseTransition) }, { "fill-extrusion-color-transition", static_cast<uint8_t>(Property::FillExtrusionColorTransition) }, + { "fill-extrusion-height-transition", static_cast<uint8_t>(Property::FillExtrusionHeightTransition) }, + { "fill-extrusion-opacity-transition", static_cast<uint8_t>(Property::FillExtrusionOpacityTransition) }, + { "fill-extrusion-pattern-transition", static_cast<uint8_t>(Property::FillExtrusionPatternTransition) }, { "fill-extrusion-translate-transition", static_cast<uint8_t>(Property::FillExtrusionTranslateTransition) }, { "fill-extrusion-translate-anchor-transition", static_cast<uint8_t>(Property::FillExtrusionTranslateAnchorTransition) }, - { "fill-extrusion-pattern-transition", static_cast<uint8_t>(Property::FillExtrusionPatternTransition) }, - { "fill-extrusion-height-transition", static_cast<uint8_t>(Property::FillExtrusionHeightTransition) }, - { "fill-extrusion-base-transition", static_cast<uint8_t>(Property::FillExtrusionBaseTransition) }, { "fill-extrusion-vertical-gradient-transition", static_cast<uint8_t>(Property::FillExtrusionVerticalGradientTransition) } }); @@ -328,15 +328,22 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co auto property = static_cast<Property>(it->second); - if (property == Property::FillExtrusionOpacity) { + if (property == Property::FillExtrusionBase || property == Property::FillExtrusionHeight) { Error error; - optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false); + optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false); if (!typedValue) { return error; } - setFillExtrusionOpacity(*typedValue); - return nullopt; + if (property == Property::FillExtrusionBase) { + setFillExtrusionBase(*typedValue); + return nullopt; + } + + if (property == Property::FillExtrusionHeight) { + setFillExtrusionHeight(*typedValue); + return nullopt; + } } @@ -352,58 +359,51 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co } - if (property == Property::FillExtrusionTranslate) { + if (property == Property::FillExtrusionOpacity) { Error error; - optional<PropertyValue<std::array<float, 2>>> typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false); + optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false); if (!typedValue) { return error; } - setFillExtrusionTranslate(*typedValue); + setFillExtrusionOpacity(*typedValue); return nullopt; } - if (property == Property::FillExtrusionTranslateAnchor) { + if (property == Property::FillExtrusionPattern) { Error error; - optional<PropertyValue<TranslateAnchorType>> typedValue = convert<PropertyValue<TranslateAnchorType>>(value, error, false, false); + optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false); if (!typedValue) { return error; } - setFillExtrusionTranslateAnchor(*typedValue); + setFillExtrusionPattern(*typedValue); return nullopt; } - if (property == Property::FillExtrusionPattern) { + if (property == Property::FillExtrusionTranslate) { Error error; - optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false); + optional<PropertyValue<std::array<float, 2>>> typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false); if (!typedValue) { return error; } - setFillExtrusionPattern(*typedValue); + setFillExtrusionTranslate(*typedValue); return nullopt; } - if (property == Property::FillExtrusionHeight || property == Property::FillExtrusionBase) { + if (property == Property::FillExtrusionTranslateAnchor) { Error error; - optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false); + optional<PropertyValue<TranslateAnchorType>> typedValue = convert<PropertyValue<TranslateAnchorType>>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::FillExtrusionHeight) { - setFillExtrusionHeight(*typedValue); - return nullopt; - } - - if (property == Property::FillExtrusionBase) { - setFillExtrusionBase(*typedValue); - return nullopt; - } + setFillExtrusionTranslateAnchor(*typedValue); + return nullopt; } @@ -426,8 +426,8 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co return error; } - if (property == Property::FillExtrusionOpacityTransition) { - setFillExtrusionOpacityTransition(*transition); + if (property == Property::FillExtrusionBaseTransition) { + setFillExtrusionBaseTransition(*transition); return nullopt; } @@ -436,13 +436,13 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co return nullopt; } - if (property == Property::FillExtrusionTranslateTransition) { - setFillExtrusionTranslateTransition(*transition); + if (property == Property::FillExtrusionHeightTransition) { + setFillExtrusionHeightTransition(*transition); return nullopt; } - if (property == Property::FillExtrusionTranslateAnchorTransition) { - setFillExtrusionTranslateAnchorTransition(*transition); + if (property == Property::FillExtrusionOpacityTransition) { + setFillExtrusionOpacityTransition(*transition); return nullopt; } @@ -451,13 +451,13 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co return nullopt; } - if (property == Property::FillExtrusionHeightTransition) { - setFillExtrusionHeightTransition(*transition); + if (property == Property::FillExtrusionTranslateTransition) { + setFillExtrusionTranslateTransition(*transition); return nullopt; } - if (property == Property::FillExtrusionBaseTransition) { - setFillExtrusionBaseTransition(*transition); + if (property == Property::FillExtrusionTranslateAnchorTransition) { + setFillExtrusionTranslateAnchorTransition(*transition); return nullopt; } |