summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/circle_layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/layers/circle_layer.cpp')
-rw-r--r--src/mbgl/style/layers/circle_layer.cpp68
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());
}