diff options
Diffstat (limited to 'src/mbgl/style/layers/circle_layer.cpp')
-rw-r--r-- | src/mbgl/style/layers/circle_layer.cpp | 68 |
1 files changed, 22 insertions, 46 deletions
diff --git a/src/mbgl/style/layers/circle_layer.cpp b/src/mbgl/style/layers/circle_layer.cpp index 619c58c366..7de6fef482 100644 --- a/src/mbgl/style/layers/circle_layer.cpp +++ b/src/mbgl/style/layers/circle_layer.cpp @@ -417,123 +417,107 @@ MAPBOX_ETERNAL_CONSTEXPR const auto layerProperties = mapbox::eternal::hash_map< {"circle-stroke-width-transition", toUint8(Property::CircleStrokeWidthTransition)}, {"circle-translate-transition", toUint8(Property::CircleTranslateTransition)}, {"circle-translate-anchor-transition", toUint8(Property::CircleTranslateAnchorTransition)}}); - -constexpr uint8_t lastPaintPropertyIndex = toUint8(Property::CircleTranslateAnchorTransition); } // namespace -optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Convertible& value) { +optional<Error> CircleLayer::setProperty(const std::string& name, const Convertible& value) { const auto it = layerProperties.find(name.c_str()); - if (it == layerProperties.end() || it->second > lastPaintPropertyIndex) { + if (it == layerProperties.end()) { + if (name == "visibility") return setVisibility(value); return Error{"layer doesn't support this property"}; } auto property = static_cast<Property>(it->second); - - if (property == Property::CircleBlur || property == Property::CircleOpacity || property == Property::CircleRadius || property == Property::CircleStrokeOpacity || property == Property::CircleStrokeWidth) { + if (property == Property::CircleBlur || property == Property::CircleOpacity || property == Property::CircleRadius || + property == Property::CircleStrokeOpacity || property == Property::CircleStrokeWidth) { Error error; - optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false); + const auto& typedValue = convert<PropertyValue<float>>(value, error, true, false); if (!typedValue) { return error; } - + if (property == Property::CircleBlur) { setCircleBlur(*typedValue); return nullopt; } - + if (property == Property::CircleOpacity) { setCircleOpacity(*typedValue); return nullopt; } - + if (property == Property::CircleRadius) { setCircleRadius(*typedValue); return nullopt; } - + if (property == Property::CircleStrokeOpacity) { setCircleStrokeOpacity(*typedValue); return nullopt; } - + if (property == Property::CircleStrokeWidth) { setCircleStrokeWidth(*typedValue); return nullopt; } - } - if (property == Property::CircleColor || property == Property::CircleStrokeColor) { Error error; - optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, true, false); + const auto& typedValue = convert<PropertyValue<Color>>(value, error, true, false); if (!typedValue) { return error; } - + if (property == Property::CircleColor) { setCircleColor(*typedValue); return nullopt; } - + if (property == Property::CircleStrokeColor) { setCircleStrokeColor(*typedValue); return nullopt; } - } - if (property == Property::CirclePitchAlignment) { Error error; - optional<PropertyValue<AlignmentType>> typedValue = convert<PropertyValue<AlignmentType>>(value, error, false, false); + const auto& typedValue = convert<PropertyValue<AlignmentType>>(value, error, false, false); if (!typedValue) { return error; } - + setCirclePitchAlignment(*typedValue); return nullopt; - } - if (property == Property::CirclePitchScale) { Error error; - optional<PropertyValue<CirclePitchScaleType>> typedValue = - convert<PropertyValue<CirclePitchScaleType>>(value, error, false, false); + const auto& typedValue = convert<PropertyValue<CirclePitchScaleType>>(value, error, false, false); if (!typedValue) { return error; } - + setCirclePitchScale(*typedValue); return nullopt; - } - if (property == Property::CircleTranslate) { Error error; - optional<PropertyValue<std::array<float, 2>>> typedValue = - convert<PropertyValue<std::array<float, 2>>>(value, error, false, false); + const auto& typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false); if (!typedValue) { return error; } - + setCircleTranslate(*typedValue); return nullopt; - } - if (property == Property::CircleTranslateAnchor) { Error error; - optional<PropertyValue<TranslateAnchorType>> typedValue = - convert<PropertyValue<TranslateAnchorType>>(value, error, false, false); + const auto& typedValue = convert<PropertyValue<TranslateAnchorType>>(value, error, false, false); if (!typedValue) { return error; } - + setCircleTranslateAnchor(*typedValue); return nullopt; - } - Error error; optional<TransitionOptions> transition = convert<TransitionOptions>(value, error); @@ -654,14 +638,6 @@ StyleProperty CircleLayer::getProperty(const std::string& name) const { return {}; } -optional<Error> CircleLayer::setLayoutProperty(const std::string& name, const Convertible& value) { - if (name == "visibility") { - return Layer::setVisibility(value); - } - - return Error { "layer doesn't support this property" }; -} - Mutable<Layer::Impl> CircleLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } |