From 9eba2a66d107f30aa9216fb34ed62df60797986a Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 10 May 2017 12:37:46 -0700 Subject: [core, node, darwin, qt] Remove support for paint classes --- include/mbgl/style/conversion/layer.hpp | 23 +-- .../style/conversion/make_property_setters.hpp | 198 ++++++++++----------- .../style/conversion/make_property_setters.hpp.ejs | 8 +- include/mbgl/style/conversion/property_setter.hpp | 30 +--- 4 files changed, 116 insertions(+), 143 deletions(-) (limited to 'include/mbgl/style/conversion') diff --git a/include/mbgl/style/conversion/layer.hpp b/include/mbgl/style/conversion/layer.hpp index 3a64c36bf5..1fe467165d 100644 --- a/include/mbgl/style/conversion/layer.hpp +++ b/include/mbgl/style/conversion/layer.hpp @@ -28,30 +28,23 @@ optional setLayoutProperty(Layer& layer, const std::string& name, const V } template -optional setPaintProperty(Layer& layer, const std::string& name, const V& value, const optional& klass) { +optional setPaintProperty(Layer& layer, const std::string& name, const V& value) { static const auto setters = makePaintPropertySetters(); auto it = setters.find(name); if (it == setters.end()) { return Error { "property not found" }; } - return it->second(layer, value, klass); + return it->second(layer, value); } template optional setPaintProperties(Layer& layer, const V& value) { - return eachMember(value, [&] (const std::string& paintName, const V& paintValue) -> optional { - if (paintName.compare(0, 5, "paint") != 0) { - return {}; - } - - optional klass; - if (paintName.compare(0, 6, "paint.") == 0) { - klass = paintName.substr(6); - } - - return eachMember(paintValue, [&] (const std::string& k, const V& v) { - return setPaintProperty(layer, k, v, klass); - }); + auto paintValue = objectMember(value, "paint"); + if (!paintValue) { + return {}; + } + return eachMember(*paintValue, [&] (const std::string& k, const V& v) { + return setPaintProperty(layer, k, v); }); } diff --git a/include/mbgl/style/conversion/make_property_setters.hpp b/include/mbgl/style/conversion/make_property_setters.hpp index 105cca99d6..582ac7079f 100644 --- a/include/mbgl/style/conversion/make_property_setters.hpp +++ b/include/mbgl/style/conversion/make_property_setters.hpp @@ -20,50 +20,50 @@ namespace conversion { template auto makeLayoutPropertySetters() { - std::unordered_map> result; + std::unordered_map> result; result["visibility"] = &setVisibility; - result["line-cap"] = &setLayoutProperty, &LineLayer::setLineCap>; - result["line-join"] = &setLayoutProperty, &LineLayer::setLineJoin>; - result["line-miter-limit"] = &setLayoutProperty, &LineLayer::setLineMiterLimit>; - result["line-round-limit"] = &setLayoutProperty, &LineLayer::setLineRoundLimit>; - - result["symbol-placement"] = &setLayoutProperty, &SymbolLayer::setSymbolPlacement>; - result["symbol-spacing"] = &setLayoutProperty, &SymbolLayer::setSymbolSpacing>; - result["symbol-avoid-edges"] = &setLayoutProperty, &SymbolLayer::setSymbolAvoidEdges>; - result["icon-allow-overlap"] = &setLayoutProperty, &SymbolLayer::setIconAllowOverlap>; - result["icon-ignore-placement"] = &setLayoutProperty, &SymbolLayer::setIconIgnorePlacement>; - result["icon-optional"] = &setLayoutProperty, &SymbolLayer::setIconOptional>; - result["icon-rotation-alignment"] = &setLayoutProperty, &SymbolLayer::setIconRotationAlignment>; - result["icon-size"] = &setLayoutProperty, &SymbolLayer::setIconSize>; - result["icon-text-fit"] = &setLayoutProperty, &SymbolLayer::setIconTextFit>; - result["icon-text-fit-padding"] = &setLayoutProperty>, &SymbolLayer::setIconTextFitPadding>; - result["icon-image"] = &setLayoutProperty, &SymbolLayer::setIconImage>; - result["icon-rotate"] = &setLayoutProperty, &SymbolLayer::setIconRotate>; - result["icon-padding"] = &setLayoutProperty, &SymbolLayer::setIconPadding>; - result["icon-keep-upright"] = &setLayoutProperty, &SymbolLayer::setIconKeepUpright>; - result["icon-offset"] = &setLayoutProperty>, &SymbolLayer::setIconOffset>; - result["text-pitch-alignment"] = &setLayoutProperty, &SymbolLayer::setTextPitchAlignment>; - result["text-rotation-alignment"] = &setLayoutProperty, &SymbolLayer::setTextRotationAlignment>; - result["text-field"] = &setLayoutProperty, &SymbolLayer::setTextField>; - result["text-font"] = &setLayoutProperty>, &SymbolLayer::setTextFont>; - result["text-size"] = &setLayoutProperty, &SymbolLayer::setTextSize>; - result["text-max-width"] = &setLayoutProperty, &SymbolLayer::setTextMaxWidth>; - result["text-line-height"] = &setLayoutProperty, &SymbolLayer::setTextLineHeight>; - result["text-letter-spacing"] = &setLayoutProperty, &SymbolLayer::setTextLetterSpacing>; - result["text-justify"] = &setLayoutProperty, &SymbolLayer::setTextJustify>; - result["text-anchor"] = &setLayoutProperty, &SymbolLayer::setTextAnchor>; - result["text-max-angle"] = &setLayoutProperty, &SymbolLayer::setTextMaxAngle>; - result["text-rotate"] = &setLayoutProperty, &SymbolLayer::setTextRotate>; - result["text-padding"] = &setLayoutProperty, &SymbolLayer::setTextPadding>; - result["text-keep-upright"] = &setLayoutProperty, &SymbolLayer::setTextKeepUpright>; - result["text-transform"] = &setLayoutProperty, &SymbolLayer::setTextTransform>; - result["text-offset"] = &setLayoutProperty>, &SymbolLayer::setTextOffset>; - result["text-allow-overlap"] = &setLayoutProperty, &SymbolLayer::setTextAllowOverlap>; - result["text-ignore-placement"] = &setLayoutProperty, &SymbolLayer::setTextIgnorePlacement>; - result["text-optional"] = &setLayoutProperty, &SymbolLayer::setTextOptional>; + result["line-cap"] = &setProperty, &LineLayer::setLineCap>; + result["line-join"] = &setProperty, &LineLayer::setLineJoin>; + result["line-miter-limit"] = &setProperty, &LineLayer::setLineMiterLimit>; + result["line-round-limit"] = &setProperty, &LineLayer::setLineRoundLimit>; + + result["symbol-placement"] = &setProperty, &SymbolLayer::setSymbolPlacement>; + result["symbol-spacing"] = &setProperty, &SymbolLayer::setSymbolSpacing>; + result["symbol-avoid-edges"] = &setProperty, &SymbolLayer::setSymbolAvoidEdges>; + result["icon-allow-overlap"] = &setProperty, &SymbolLayer::setIconAllowOverlap>; + result["icon-ignore-placement"] = &setProperty, &SymbolLayer::setIconIgnorePlacement>; + result["icon-optional"] = &setProperty, &SymbolLayer::setIconOptional>; + result["icon-rotation-alignment"] = &setProperty, &SymbolLayer::setIconRotationAlignment>; + result["icon-size"] = &setProperty, &SymbolLayer::setIconSize>; + result["icon-text-fit"] = &setProperty, &SymbolLayer::setIconTextFit>; + result["icon-text-fit-padding"] = &setProperty>, &SymbolLayer::setIconTextFitPadding>; + result["icon-image"] = &setProperty, &SymbolLayer::setIconImage>; + result["icon-rotate"] = &setProperty, &SymbolLayer::setIconRotate>; + result["icon-padding"] = &setProperty, &SymbolLayer::setIconPadding>; + result["icon-keep-upright"] = &setProperty, &SymbolLayer::setIconKeepUpright>; + result["icon-offset"] = &setProperty>, &SymbolLayer::setIconOffset>; + result["text-pitch-alignment"] = &setProperty, &SymbolLayer::setTextPitchAlignment>; + result["text-rotation-alignment"] = &setProperty, &SymbolLayer::setTextRotationAlignment>; + result["text-field"] = &setProperty, &SymbolLayer::setTextField>; + result["text-font"] = &setProperty>, &SymbolLayer::setTextFont>; + result["text-size"] = &setProperty, &SymbolLayer::setTextSize>; + result["text-max-width"] = &setProperty, &SymbolLayer::setTextMaxWidth>; + result["text-line-height"] = &setProperty, &SymbolLayer::setTextLineHeight>; + result["text-letter-spacing"] = &setProperty, &SymbolLayer::setTextLetterSpacing>; + result["text-justify"] = &setProperty, &SymbolLayer::setTextJustify>; + result["text-anchor"] = &setProperty, &SymbolLayer::setTextAnchor>; + result["text-max-angle"] = &setProperty, &SymbolLayer::setTextMaxAngle>; + result["text-rotate"] = &setProperty, &SymbolLayer::setTextRotate>; + result["text-padding"] = &setProperty, &SymbolLayer::setTextPadding>; + result["text-keep-upright"] = &setProperty, &SymbolLayer::setTextKeepUpright>; + result["text-transform"] = &setProperty, &SymbolLayer::setTextTransform>; + result["text-offset"] = &setProperty>, &SymbolLayer::setTextOffset>; + result["text-allow-overlap"] = &setProperty, &SymbolLayer::setTextAllowOverlap>; + result["text-ignore-placement"] = &setProperty, &SymbolLayer::setTextIgnorePlacement>; + result["text-optional"] = &setProperty, &SymbolLayer::setTextOptional>; @@ -74,129 +74,129 @@ auto makeLayoutPropertySetters() { template auto makePaintPropertySetters() { - std::unordered_map> result; + std::unordered_map> result; - result["fill-antialias"] = &setPaintProperty, &FillLayer::setFillAntialias>; + result["fill-antialias"] = &setProperty, &FillLayer::setFillAntialias>; result["fill-antialias-transition"] = &setTransition; - result["fill-opacity"] = &setPaintProperty, &FillLayer::setFillOpacity>; + result["fill-opacity"] = &setProperty, &FillLayer::setFillOpacity>; result["fill-opacity-transition"] = &setTransition; - result["fill-color"] = &setPaintProperty, &FillLayer::setFillColor>; + result["fill-color"] = &setProperty, &FillLayer::setFillColor>; result["fill-color-transition"] = &setTransition; - result["fill-outline-color"] = &setPaintProperty, &FillLayer::setFillOutlineColor>; + result["fill-outline-color"] = &setProperty, &FillLayer::setFillOutlineColor>; result["fill-outline-color-transition"] = &setTransition; - result["fill-translate"] = &setPaintProperty>, &FillLayer::setFillTranslate>; + result["fill-translate"] = &setProperty>, &FillLayer::setFillTranslate>; result["fill-translate-transition"] = &setTransition; - result["fill-translate-anchor"] = &setPaintProperty, &FillLayer::setFillTranslateAnchor>; + result["fill-translate-anchor"] = &setProperty, &FillLayer::setFillTranslateAnchor>; result["fill-translate-anchor-transition"] = &setTransition; - result["fill-pattern"] = &setPaintProperty, &FillLayer::setFillPattern>; + result["fill-pattern"] = &setProperty, &FillLayer::setFillPattern>; result["fill-pattern-transition"] = &setTransition; - result["line-opacity"] = &setPaintProperty, &LineLayer::setLineOpacity>; + result["line-opacity"] = &setProperty, &LineLayer::setLineOpacity>; result["line-opacity-transition"] = &setTransition; - result["line-color"] = &setPaintProperty, &LineLayer::setLineColor>; + result["line-color"] = &setProperty, &LineLayer::setLineColor>; result["line-color-transition"] = &setTransition; - result["line-translate"] = &setPaintProperty>, &LineLayer::setLineTranslate>; + result["line-translate"] = &setProperty>, &LineLayer::setLineTranslate>; result["line-translate-transition"] = &setTransition; - result["line-translate-anchor"] = &setPaintProperty, &LineLayer::setLineTranslateAnchor>; + result["line-translate-anchor"] = &setProperty, &LineLayer::setLineTranslateAnchor>; result["line-translate-anchor-transition"] = &setTransition; - result["line-width"] = &setPaintProperty, &LineLayer::setLineWidth>; + result["line-width"] = &setProperty, &LineLayer::setLineWidth>; result["line-width-transition"] = &setTransition; - result["line-gap-width"] = &setPaintProperty, &LineLayer::setLineGapWidth>; + result["line-gap-width"] = &setProperty, &LineLayer::setLineGapWidth>; result["line-gap-width-transition"] = &setTransition; - result["line-offset"] = &setPaintProperty, &LineLayer::setLineOffset>; + result["line-offset"] = &setProperty, &LineLayer::setLineOffset>; result["line-offset-transition"] = &setTransition; - result["line-blur"] = &setPaintProperty, &LineLayer::setLineBlur>; + result["line-blur"] = &setProperty, &LineLayer::setLineBlur>; result["line-blur-transition"] = &setTransition; - result["line-dasharray"] = &setPaintProperty>, &LineLayer::setLineDasharray>; + result["line-dasharray"] = &setProperty>, &LineLayer::setLineDasharray>; result["line-dasharray-transition"] = &setTransition; - result["line-pattern"] = &setPaintProperty, &LineLayer::setLinePattern>; + result["line-pattern"] = &setProperty, &LineLayer::setLinePattern>; result["line-pattern-transition"] = &setTransition; - result["icon-opacity"] = &setPaintProperty, &SymbolLayer::setIconOpacity>; + result["icon-opacity"] = &setProperty, &SymbolLayer::setIconOpacity>; result["icon-opacity-transition"] = &setTransition; - result["icon-color"] = &setPaintProperty, &SymbolLayer::setIconColor>; + result["icon-color"] = &setProperty, &SymbolLayer::setIconColor>; result["icon-color-transition"] = &setTransition; - result["icon-halo-color"] = &setPaintProperty, &SymbolLayer::setIconHaloColor>; + result["icon-halo-color"] = &setProperty, &SymbolLayer::setIconHaloColor>; result["icon-halo-color-transition"] = &setTransition; - result["icon-halo-width"] = &setPaintProperty, &SymbolLayer::setIconHaloWidth>; + result["icon-halo-width"] = &setProperty, &SymbolLayer::setIconHaloWidth>; result["icon-halo-width-transition"] = &setTransition; - result["icon-halo-blur"] = &setPaintProperty, &SymbolLayer::setIconHaloBlur>; + result["icon-halo-blur"] = &setProperty, &SymbolLayer::setIconHaloBlur>; result["icon-halo-blur-transition"] = &setTransition; - result["icon-translate"] = &setPaintProperty>, &SymbolLayer::setIconTranslate>; + result["icon-translate"] = &setProperty>, &SymbolLayer::setIconTranslate>; result["icon-translate-transition"] = &setTransition; - result["icon-translate-anchor"] = &setPaintProperty, &SymbolLayer::setIconTranslateAnchor>; + result["icon-translate-anchor"] = &setProperty, &SymbolLayer::setIconTranslateAnchor>; result["icon-translate-anchor-transition"] = &setTransition; - result["text-opacity"] = &setPaintProperty, &SymbolLayer::setTextOpacity>; + result["text-opacity"] = &setProperty, &SymbolLayer::setTextOpacity>; result["text-opacity-transition"] = &setTransition; - result["text-color"] = &setPaintProperty, &SymbolLayer::setTextColor>; + result["text-color"] = &setProperty, &SymbolLayer::setTextColor>; result["text-color-transition"] = &setTransition; - result["text-halo-color"] = &setPaintProperty, &SymbolLayer::setTextHaloColor>; + result["text-halo-color"] = &setProperty, &SymbolLayer::setTextHaloColor>; result["text-halo-color-transition"] = &setTransition; - result["text-halo-width"] = &setPaintProperty, &SymbolLayer::setTextHaloWidth>; + result["text-halo-width"] = &setProperty, &SymbolLayer::setTextHaloWidth>; result["text-halo-width-transition"] = &setTransition; - result["text-halo-blur"] = &setPaintProperty, &SymbolLayer::setTextHaloBlur>; + result["text-halo-blur"] = &setProperty, &SymbolLayer::setTextHaloBlur>; result["text-halo-blur-transition"] = &setTransition; - result["text-translate"] = &setPaintProperty>, &SymbolLayer::setTextTranslate>; + result["text-translate"] = &setProperty>, &SymbolLayer::setTextTranslate>; result["text-translate-transition"] = &setTransition; - result["text-translate-anchor"] = &setPaintProperty, &SymbolLayer::setTextTranslateAnchor>; + result["text-translate-anchor"] = &setProperty, &SymbolLayer::setTextTranslateAnchor>; result["text-translate-anchor-transition"] = &setTransition; - result["circle-radius"] = &setPaintProperty, &CircleLayer::setCircleRadius>; + result["circle-radius"] = &setProperty, &CircleLayer::setCircleRadius>; result["circle-radius-transition"] = &setTransition; - result["circle-color"] = &setPaintProperty, &CircleLayer::setCircleColor>; + result["circle-color"] = &setProperty, &CircleLayer::setCircleColor>; result["circle-color-transition"] = &setTransition; - result["circle-blur"] = &setPaintProperty, &CircleLayer::setCircleBlur>; + result["circle-blur"] = &setProperty, &CircleLayer::setCircleBlur>; result["circle-blur-transition"] = &setTransition; - result["circle-opacity"] = &setPaintProperty, &CircleLayer::setCircleOpacity>; + result["circle-opacity"] = &setProperty, &CircleLayer::setCircleOpacity>; result["circle-opacity-transition"] = &setTransition; - result["circle-translate"] = &setPaintProperty>, &CircleLayer::setCircleTranslate>; + result["circle-translate"] = &setProperty>, &CircleLayer::setCircleTranslate>; result["circle-translate-transition"] = &setTransition; - result["circle-translate-anchor"] = &setPaintProperty, &CircleLayer::setCircleTranslateAnchor>; + result["circle-translate-anchor"] = &setProperty, &CircleLayer::setCircleTranslateAnchor>; result["circle-translate-anchor-transition"] = &setTransition; - result["circle-pitch-scale"] = &setPaintProperty, &CircleLayer::setCirclePitchScale>; + result["circle-pitch-scale"] = &setProperty, &CircleLayer::setCirclePitchScale>; result["circle-pitch-scale-transition"] = &setTransition; - result["circle-stroke-width"] = &setPaintProperty, &CircleLayer::setCircleStrokeWidth>; + result["circle-stroke-width"] = &setProperty, &CircleLayer::setCircleStrokeWidth>; result["circle-stroke-width-transition"] = &setTransition; - result["circle-stroke-color"] = &setPaintProperty, &CircleLayer::setCircleStrokeColor>; + result["circle-stroke-color"] = &setProperty, &CircleLayer::setCircleStrokeColor>; result["circle-stroke-color-transition"] = &setTransition; - result["circle-stroke-opacity"] = &setPaintProperty, &CircleLayer::setCircleStrokeOpacity>; + result["circle-stroke-opacity"] = &setProperty, &CircleLayer::setCircleStrokeOpacity>; result["circle-stroke-opacity-transition"] = &setTransition; - result["fill-extrusion-opacity"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionOpacity>; + result["fill-extrusion-opacity"] = &setProperty, &FillExtrusionLayer::setFillExtrusionOpacity>; result["fill-extrusion-opacity-transition"] = &setTransition; - result["fill-extrusion-color"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionColor>; + result["fill-extrusion-color"] = &setProperty, &FillExtrusionLayer::setFillExtrusionColor>; result["fill-extrusion-color-transition"] = &setTransition; - result["fill-extrusion-translate"] = &setPaintProperty>, &FillExtrusionLayer::setFillExtrusionTranslate>; + result["fill-extrusion-translate"] = &setProperty>, &FillExtrusionLayer::setFillExtrusionTranslate>; result["fill-extrusion-translate-transition"] = &setTransition; - result["fill-extrusion-translate-anchor"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionTranslateAnchor>; + result["fill-extrusion-translate-anchor"] = &setProperty, &FillExtrusionLayer::setFillExtrusionTranslateAnchor>; result["fill-extrusion-translate-anchor-transition"] = &setTransition; - result["fill-extrusion-pattern"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionPattern>; + result["fill-extrusion-pattern"] = &setProperty, &FillExtrusionLayer::setFillExtrusionPattern>; result["fill-extrusion-pattern-transition"] = &setTransition; - result["fill-extrusion-height"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionHeight>; + result["fill-extrusion-height"] = &setProperty, &FillExtrusionLayer::setFillExtrusionHeight>; result["fill-extrusion-height-transition"] = &setTransition; - result["fill-extrusion-base"] = &setPaintProperty, &FillExtrusionLayer::setFillExtrusionBase>; + result["fill-extrusion-base"] = &setProperty, &FillExtrusionLayer::setFillExtrusionBase>; result["fill-extrusion-base-transition"] = &setTransition; - result["raster-opacity"] = &setPaintProperty, &RasterLayer::setRasterOpacity>; + result["raster-opacity"] = &setProperty, &RasterLayer::setRasterOpacity>; result["raster-opacity-transition"] = &setTransition; - result["raster-hue-rotate"] = &setPaintProperty, &RasterLayer::setRasterHueRotate>; + result["raster-hue-rotate"] = &setProperty, &RasterLayer::setRasterHueRotate>; result["raster-hue-rotate-transition"] = &setTransition; - result["raster-brightness-min"] = &setPaintProperty, &RasterLayer::setRasterBrightnessMin>; + result["raster-brightness-min"] = &setProperty, &RasterLayer::setRasterBrightnessMin>; result["raster-brightness-min-transition"] = &setTransition; - result["raster-brightness-max"] = &setPaintProperty, &RasterLayer::setRasterBrightnessMax>; + result["raster-brightness-max"] = &setProperty, &RasterLayer::setRasterBrightnessMax>; result["raster-brightness-max-transition"] = &setTransition; - result["raster-saturation"] = &setPaintProperty, &RasterLayer::setRasterSaturation>; + result["raster-saturation"] = &setProperty, &RasterLayer::setRasterSaturation>; result["raster-saturation-transition"] = &setTransition; - result["raster-contrast"] = &setPaintProperty, &RasterLayer::setRasterContrast>; + result["raster-contrast"] = &setProperty, &RasterLayer::setRasterContrast>; result["raster-contrast-transition"] = &setTransition; - result["raster-fade-duration"] = &setPaintProperty, &RasterLayer::setRasterFadeDuration>; + result["raster-fade-duration"] = &setProperty, &RasterLayer::setRasterFadeDuration>; result["raster-fade-duration-transition"] = &setTransition; - result["background-color"] = &setPaintProperty, &BackgroundLayer::setBackgroundColor>; + result["background-color"] = &setProperty, &BackgroundLayer::setBackgroundColor>; result["background-color-transition"] = &setTransition; - result["background-pattern"] = &setPaintProperty, &BackgroundLayer::setBackgroundPattern>; + result["background-pattern"] = &setProperty, &BackgroundLayer::setBackgroundPattern>; result["background-pattern-transition"] = &setTransition; - result["background-opacity"] = &setPaintProperty, &BackgroundLayer::setBackgroundOpacity>; + result["background-opacity"] = &setProperty, &BackgroundLayer::setBackgroundOpacity>; result["background-opacity-transition"] = &setTransition; return result; diff --git a/include/mbgl/style/conversion/make_property_setters.hpp.ejs b/include/mbgl/style/conversion/make_property_setters.hpp.ejs index a99e75aec7..19c9f70538 100644 --- a/include/mbgl/style/conversion/make_property_setters.hpp.ejs +++ b/include/mbgl/style/conversion/make_property_setters.hpp.ejs @@ -16,13 +16,13 @@ namespace conversion { template auto makeLayoutPropertySetters() { - std::unordered_map> result; + std::unordered_map> result; result["visibility"] = &setVisibility; <% for (const layer of locals.layers) { -%> <% for (const property of layer.layoutProperties) { -%> - result["<%- property.name %>"] = &setLayoutPropertyLayer, <%- propertyValueType(property) %>, &<%- camelize(layer.type) %>Layer::set<%- camelize(property.name) %>>; + result["<%- property.name %>"] = &setPropertyLayer, <%- propertyValueType(property) %>, &<%- camelize(layer.type) %>Layer::set<%- camelize(property.name) %>>; <% } -%> <% } -%> @@ -31,11 +31,11 @@ auto makeLayoutPropertySetters() { template auto makePaintPropertySetters() { - std::unordered_map> result; + std::unordered_map> result; <% for (const layer of locals.layers) { -%> <% for (const property of layer.paintProperties) { -%> - result["<%- property.name %>"] = &setPaintPropertyLayer, <%- propertyValueType(property) %>, &<%- camelize(layer.type) %>Layer::set<%- camelize(property.name) %>>; + result["<%- property.name %>"] = &setPropertyLayer, <%- propertyValueType(property) %>, &<%- camelize(layer.type) %>Layer::set<%- camelize(property.name) %>>; result["<%- property.name %>-transition"] = &setTransitionLayer, &<%- camelize(layer.type) %>Layer::set<%- camelize(property.name) %>Transition>; <% } -%> diff --git a/include/mbgl/style/conversion/property_setter.hpp b/include/mbgl/style/conversion/property_setter.hpp index 8658fd60b0..759c4512cc 100644 --- a/include/mbgl/style/conversion/property_setter.hpp +++ b/include/mbgl/style/conversion/property_setter.hpp @@ -14,13 +14,10 @@ namespace style { namespace conversion { template -using LayoutPropertySetter = optional (*) (Layer&, const V&); - -template -using PaintPropertySetter = optional (*) (Layer&, const V&, const optional&); +using PropertySetter = optional (*) (Layer&, const V&); template -optional setLayoutProperty(Layer& layer, const V& value) { +optional setProperty(Layer& layer, const V& value) { auto* typedLayer = layer.as(); if (!typedLayer) { return Error { "layer doesn't support this property" }; @@ -36,25 +33,8 @@ optional setLayoutProperty(Layer& layer, const V& value) { return {}; } -template &)> -optional setPaintProperty(Layer& layer, const V& value, const optional& klass) { - auto* typedLayer = layer.as(); - if (!typedLayer) { - return Error { "layer doesn't support this property" }; - } - - Error error; - optional typedValue = convert(value, error); - if (!typedValue) { - return error; - } - - (typedLayer->*setter)(*typedValue, klass); - return {}; -} - -template &)> -optional setTransition(Layer& layer, const V& value, const optional& klass) { +template +optional setTransition(Layer& layer, const V& value) { auto* typedLayer = layer.as(); if (!typedLayer) { return Error { "layer doesn't support this property" }; @@ -66,7 +46,7 @@ optional setTransition(Layer& layer, const V& value, const optional*setter)(*transition, klass); + (typedLayer->*setter)(*transition); return {}; } -- cgit v1.2.1