From 8f4001b6b6d484c7274b98dcd971927d1db1ed88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Thu, 2 May 2019 15:25:48 +0200 Subject: [build] change style code generator to sort properties alphabetically JSON keys in our style specification don't have a defined order. This change sorts them alphabetically so that we can rely on the order remaining them same across code generation runs. --- include/mbgl/style/layers/background_layer.hpp | 12 +- include/mbgl/style/layers/circle_layer.hpp | 66 +- include/mbgl/style/layers/fill_extrusion_layer.hpp | 46 +- include/mbgl/style/layers/fill_layer.hpp | 24 +- include/mbgl/style/layers/heatmap_layer.hpp | 34 +- include/mbgl/style/layers/hillshade_layer.hpp | 44 +- include/mbgl/style/layers/line_layer.hpp | 76 +- include/mbgl/style/layers/raster_layer.hpp | 56 +- include/mbgl/style/layers/symbol_layer.hpp | 232 ++-- include/mbgl/style/light.hpp | 12 +- scripts/generate-style-code.js | 14 + src/mbgl/style/layers/background_layer.cpp | 74 +- .../style/layers/background_layer_properties.hpp | 12 +- src/mbgl/style/layers/circle_layer.cpp | 324 +++--- src/mbgl/style/layers/circle_layer_properties.hpp | 50 +- src/mbgl/style/layers/fill_extrusion_layer.cpp | 210 ++-- .../layers/fill_extrusion_layer_properties.hpp | 28 +- src/mbgl/style/layers/fill_layer.cpp | 176 +-- src/mbgl/style/layers/fill_layer_properties.hpp | 22 +- src/mbgl/style/layers/heatmap_layer.cpp | 184 ++-- src/mbgl/style/layers/heatmap_layer_properties.hpp | 20 +- src/mbgl/style/layers/hillshade_layer.cpp | 236 ++-- .../style/layers/hillshade_layer_properties.hpp | 30 +- src/mbgl/style/layers/line_layer.cpp | 366 +++---- src/mbgl/style/layers/line_layer_properties.hpp | 50 +- src/mbgl/style/layers/raster_layer.cpp | 244 ++--- src/mbgl/style/layers/raster_layer_properties.hpp | 30 +- src/mbgl/style/layers/symbol_layer.cpp | 1130 ++++++++++---------- src/mbgl/style/layers/symbol_layer_properties.hpp | 280 ++--- src/mbgl/style/light.cpp | 52 +- test/style/conversion/stringify.test.cpp | 2 +- 31 files changed, 2075 insertions(+), 2061 deletions(-) diff --git a/include/mbgl/style/layers/background_layer.hpp b/include/mbgl/style/layers/background_layer.hpp index 1e1f4b78a8..97ab2c0592 100644 --- a/include/mbgl/style/layers/background_layer.hpp +++ b/include/mbgl/style/layers/background_layer.hpp @@ -30,18 +30,18 @@ public: void setBackgroundColorTransition(const TransitionOptions&); TransitionOptions getBackgroundColorTransition() const; - static PropertyValue getDefaultBackgroundPattern(); - const PropertyValue& getBackgroundPattern() const; - void setBackgroundPattern(const PropertyValue&); - void setBackgroundPatternTransition(const TransitionOptions&); - TransitionOptions getBackgroundPatternTransition() const; - static PropertyValue getDefaultBackgroundOpacity(); const PropertyValue& getBackgroundOpacity() const; void setBackgroundOpacity(const PropertyValue&); void setBackgroundOpacityTransition(const TransitionOptions&); TransitionOptions getBackgroundOpacityTransition() const; + static PropertyValue getDefaultBackgroundPattern(); + const PropertyValue& getBackgroundPattern() const; + void setBackgroundPattern(const PropertyValue&); + void setBackgroundPatternTransition(const TransitionOptions&); + TransitionOptions getBackgroundPatternTransition() const; + // Private implementation class Impl; diff --git a/include/mbgl/style/layers/circle_layer.hpp b/include/mbgl/style/layers/circle_layer.hpp index 4095bc8fe7..62d29964f8 100644 --- a/include/mbgl/style/layers/circle_layer.hpp +++ b/include/mbgl/style/layers/circle_layer.hpp @@ -24,11 +24,11 @@ public: // Paint properties - static PropertyValue getDefaultCircleRadius(); - const PropertyValue& getCircleRadius() const; - void setCircleRadius(const PropertyValue&); - void setCircleRadiusTransition(const TransitionOptions&); - TransitionOptions getCircleRadiusTransition() const; + static PropertyValue getDefaultCircleBlur(); + const PropertyValue& getCircleBlur() const; + void setCircleBlur(const PropertyValue&); + void setCircleBlurTransition(const TransitionOptions&); + TransitionOptions getCircleBlurTransition() const; static PropertyValue getDefaultCircleColor(); const PropertyValue& getCircleColor() const; @@ -36,29 +36,17 @@ public: void setCircleColorTransition(const TransitionOptions&); TransitionOptions getCircleColorTransition() const; - static PropertyValue getDefaultCircleBlur(); - const PropertyValue& getCircleBlur() const; - void setCircleBlur(const PropertyValue&); - void setCircleBlurTransition(const TransitionOptions&); - TransitionOptions getCircleBlurTransition() const; - static PropertyValue getDefaultCircleOpacity(); const PropertyValue& getCircleOpacity() const; void setCircleOpacity(const PropertyValue&); void setCircleOpacityTransition(const TransitionOptions&); TransitionOptions getCircleOpacityTransition() const; - static PropertyValue> getDefaultCircleTranslate(); - const PropertyValue>& getCircleTranslate() const; - void setCircleTranslate(const PropertyValue>&); - void setCircleTranslateTransition(const TransitionOptions&); - TransitionOptions getCircleTranslateTransition() const; - - static PropertyValue getDefaultCircleTranslateAnchor(); - const PropertyValue& getCircleTranslateAnchor() const; - void setCircleTranslateAnchor(const PropertyValue&); - void setCircleTranslateAnchorTransition(const TransitionOptions&); - TransitionOptions getCircleTranslateAnchorTransition() const; + static PropertyValue getDefaultCirclePitchAlignment(); + const PropertyValue& getCirclePitchAlignment() const; + void setCirclePitchAlignment(const PropertyValue&); + void setCirclePitchAlignmentTransition(const TransitionOptions&); + TransitionOptions getCirclePitchAlignmentTransition() const; static PropertyValue getDefaultCirclePitchScale(); const PropertyValue& getCirclePitchScale() const; @@ -66,17 +54,11 @@ public: void setCirclePitchScaleTransition(const TransitionOptions&); TransitionOptions getCirclePitchScaleTransition() const; - static PropertyValue getDefaultCirclePitchAlignment(); - const PropertyValue& getCirclePitchAlignment() const; - void setCirclePitchAlignment(const PropertyValue&); - void setCirclePitchAlignmentTransition(const TransitionOptions&); - TransitionOptions getCirclePitchAlignmentTransition() const; - - static PropertyValue getDefaultCircleStrokeWidth(); - const PropertyValue& getCircleStrokeWidth() const; - void setCircleStrokeWidth(const PropertyValue&); - void setCircleStrokeWidthTransition(const TransitionOptions&); - TransitionOptions getCircleStrokeWidthTransition() const; + static PropertyValue getDefaultCircleRadius(); + const PropertyValue& getCircleRadius() const; + void setCircleRadius(const PropertyValue&); + void setCircleRadiusTransition(const TransitionOptions&); + TransitionOptions getCircleRadiusTransition() const; static PropertyValue getDefaultCircleStrokeColor(); const PropertyValue& getCircleStrokeColor() const; @@ -90,6 +72,24 @@ public: void setCircleStrokeOpacityTransition(const TransitionOptions&); TransitionOptions getCircleStrokeOpacityTransition() const; + static PropertyValue getDefaultCircleStrokeWidth(); + const PropertyValue& getCircleStrokeWidth() const; + void setCircleStrokeWidth(const PropertyValue&); + void setCircleStrokeWidthTransition(const TransitionOptions&); + TransitionOptions getCircleStrokeWidthTransition() const; + + static PropertyValue> getDefaultCircleTranslate(); + const PropertyValue>& getCircleTranslate() const; + void setCircleTranslate(const PropertyValue>&); + void setCircleTranslateTransition(const TransitionOptions&); + TransitionOptions getCircleTranslateTransition() const; + + static PropertyValue getDefaultCircleTranslateAnchor(); + const PropertyValue& getCircleTranslateAnchor() const; + void setCircleTranslateAnchor(const PropertyValue&); + void setCircleTranslateAnchorTransition(const TransitionOptions&); + TransitionOptions getCircleTranslateAnchorTransition() const; + // Private implementation class Impl; diff --git a/include/mbgl/style/layers/fill_extrusion_layer.hpp b/include/mbgl/style/layers/fill_extrusion_layer.hpp index 80152de80a..5ed9b6012c 100644 --- a/include/mbgl/style/layers/fill_extrusion_layer.hpp +++ b/include/mbgl/style/layers/fill_extrusion_layer.hpp @@ -24,11 +24,11 @@ public: // Paint properties - static PropertyValue getDefaultFillExtrusionOpacity(); - const PropertyValue& getFillExtrusionOpacity() const; - void setFillExtrusionOpacity(const PropertyValue&); - void setFillExtrusionOpacityTransition(const TransitionOptions&); - TransitionOptions getFillExtrusionOpacityTransition() const; + static PropertyValue getDefaultFillExtrusionBase(); + const PropertyValue& getFillExtrusionBase() const; + void setFillExtrusionBase(const PropertyValue&); + void setFillExtrusionBaseTransition(const TransitionOptions&); + TransitionOptions getFillExtrusionBaseTransition() const; static PropertyValue getDefaultFillExtrusionColor(); const PropertyValue& getFillExtrusionColor() const; @@ -36,6 +36,24 @@ public: void setFillExtrusionColorTransition(const TransitionOptions&); TransitionOptions getFillExtrusionColorTransition() const; + static PropertyValue getDefaultFillExtrusionHeight(); + const PropertyValue& getFillExtrusionHeight() const; + void setFillExtrusionHeight(const PropertyValue&); + void setFillExtrusionHeightTransition(const TransitionOptions&); + TransitionOptions getFillExtrusionHeightTransition() const; + + static PropertyValue getDefaultFillExtrusionOpacity(); + const PropertyValue& getFillExtrusionOpacity() const; + void setFillExtrusionOpacity(const PropertyValue&); + void setFillExtrusionOpacityTransition(const TransitionOptions&); + TransitionOptions getFillExtrusionOpacityTransition() const; + + static PropertyValue getDefaultFillExtrusionPattern(); + const PropertyValue& getFillExtrusionPattern() const; + void setFillExtrusionPattern(const PropertyValue&); + void setFillExtrusionPatternTransition(const TransitionOptions&); + TransitionOptions getFillExtrusionPatternTransition() const; + static PropertyValue> getDefaultFillExtrusionTranslate(); const PropertyValue>& getFillExtrusionTranslate() const; void setFillExtrusionTranslate(const PropertyValue>&); @@ -48,24 +66,6 @@ public: void setFillExtrusionTranslateAnchorTransition(const TransitionOptions&); TransitionOptions getFillExtrusionTranslateAnchorTransition() const; - static PropertyValue getDefaultFillExtrusionPattern(); - const PropertyValue& getFillExtrusionPattern() const; - void setFillExtrusionPattern(const PropertyValue&); - void setFillExtrusionPatternTransition(const TransitionOptions&); - TransitionOptions getFillExtrusionPatternTransition() const; - - static PropertyValue getDefaultFillExtrusionHeight(); - const PropertyValue& getFillExtrusionHeight() const; - void setFillExtrusionHeight(const PropertyValue&); - void setFillExtrusionHeightTransition(const TransitionOptions&); - TransitionOptions getFillExtrusionHeightTransition() const; - - static PropertyValue getDefaultFillExtrusionBase(); - const PropertyValue& getFillExtrusionBase() const; - void setFillExtrusionBase(const PropertyValue&); - void setFillExtrusionBaseTransition(const TransitionOptions&); - TransitionOptions getFillExtrusionBaseTransition() const; - static PropertyValue getDefaultFillExtrusionVerticalGradient(); const PropertyValue& getFillExtrusionVerticalGradient() const; void setFillExtrusionVerticalGradient(const PropertyValue&); diff --git a/include/mbgl/style/layers/fill_layer.hpp b/include/mbgl/style/layers/fill_layer.hpp index e4872a5fd8..e029ccc67e 100644 --- a/include/mbgl/style/layers/fill_layer.hpp +++ b/include/mbgl/style/layers/fill_layer.hpp @@ -30,24 +30,30 @@ public: void setFillAntialiasTransition(const TransitionOptions&); TransitionOptions getFillAntialiasTransition() const; - static PropertyValue getDefaultFillOpacity(); - const PropertyValue& getFillOpacity() const; - void setFillOpacity(const PropertyValue&); - void setFillOpacityTransition(const TransitionOptions&); - TransitionOptions getFillOpacityTransition() const; - static PropertyValue getDefaultFillColor(); const PropertyValue& getFillColor() const; void setFillColor(const PropertyValue&); void setFillColorTransition(const TransitionOptions&); TransitionOptions getFillColorTransition() const; + static PropertyValue getDefaultFillOpacity(); + const PropertyValue& getFillOpacity() const; + void setFillOpacity(const PropertyValue&); + void setFillOpacityTransition(const TransitionOptions&); + TransitionOptions getFillOpacityTransition() const; + static PropertyValue getDefaultFillOutlineColor(); const PropertyValue& getFillOutlineColor() const; void setFillOutlineColor(const PropertyValue&); void setFillOutlineColorTransition(const TransitionOptions&); TransitionOptions getFillOutlineColorTransition() const; + static PropertyValue getDefaultFillPattern(); + const PropertyValue& getFillPattern() const; + void setFillPattern(const PropertyValue&); + void setFillPatternTransition(const TransitionOptions&); + TransitionOptions getFillPatternTransition() const; + static PropertyValue> getDefaultFillTranslate(); const PropertyValue>& getFillTranslate() const; void setFillTranslate(const PropertyValue>&); @@ -60,12 +66,6 @@ public: void setFillTranslateAnchorTransition(const TransitionOptions&); TransitionOptions getFillTranslateAnchorTransition() const; - static PropertyValue getDefaultFillPattern(); - const PropertyValue& getFillPattern() const; - void setFillPattern(const PropertyValue&); - void setFillPatternTransition(const TransitionOptions&); - TransitionOptions getFillPatternTransition() const; - // Private implementation class Impl; diff --git a/include/mbgl/style/layers/heatmap_layer.hpp b/include/mbgl/style/layers/heatmap_layer.hpp index bbd9d6eb7b..d8863d9952 100644 --- a/include/mbgl/style/layers/heatmap_layer.hpp +++ b/include/mbgl/style/layers/heatmap_layer.hpp @@ -25,17 +25,11 @@ public: // Paint properties - static PropertyValue getDefaultHeatmapRadius(); - const PropertyValue& getHeatmapRadius() const; - void setHeatmapRadius(const PropertyValue&); - void setHeatmapRadiusTransition(const TransitionOptions&); - TransitionOptions getHeatmapRadiusTransition() const; - - static PropertyValue getDefaultHeatmapWeight(); - const PropertyValue& getHeatmapWeight() const; - void setHeatmapWeight(const PropertyValue&); - void setHeatmapWeightTransition(const TransitionOptions&); - TransitionOptions getHeatmapWeightTransition() const; + static ColorRampPropertyValue getDefaultHeatmapColor(); + const ColorRampPropertyValue& getHeatmapColor() const; + void setHeatmapColor(const ColorRampPropertyValue&); + void setHeatmapColorTransition(const TransitionOptions&); + TransitionOptions getHeatmapColorTransition() const; static PropertyValue getDefaultHeatmapIntensity(); const PropertyValue& getHeatmapIntensity() const; @@ -43,18 +37,24 @@ public: void setHeatmapIntensityTransition(const TransitionOptions&); TransitionOptions getHeatmapIntensityTransition() const; - static ColorRampPropertyValue getDefaultHeatmapColor(); - const ColorRampPropertyValue& getHeatmapColor() const; - void setHeatmapColor(const ColorRampPropertyValue&); - void setHeatmapColorTransition(const TransitionOptions&); - TransitionOptions getHeatmapColorTransition() const; - static PropertyValue getDefaultHeatmapOpacity(); const PropertyValue& getHeatmapOpacity() const; void setHeatmapOpacity(const PropertyValue&); void setHeatmapOpacityTransition(const TransitionOptions&); TransitionOptions getHeatmapOpacityTransition() const; + static PropertyValue getDefaultHeatmapRadius(); + const PropertyValue& getHeatmapRadius() const; + void setHeatmapRadius(const PropertyValue&); + void setHeatmapRadiusTransition(const TransitionOptions&); + TransitionOptions getHeatmapRadiusTransition() const; + + static PropertyValue getDefaultHeatmapWeight(); + const PropertyValue& getHeatmapWeight() const; + void setHeatmapWeight(const PropertyValue&); + void setHeatmapWeightTransition(const TransitionOptions&); + TransitionOptions getHeatmapWeightTransition() const; + // Private implementation class Impl; diff --git a/include/mbgl/style/layers/hillshade_layer.hpp b/include/mbgl/style/layers/hillshade_layer.hpp index d2eebadf9d..3ec3cdabad 100644 --- a/include/mbgl/style/layers/hillshade_layer.hpp +++ b/include/mbgl/style/layers/hillshade_layer.hpp @@ -24,17 +24,11 @@ public: // Paint properties - static PropertyValue getDefaultHillshadeIlluminationDirection(); - const PropertyValue& getHillshadeIlluminationDirection() const; - void setHillshadeIlluminationDirection(const PropertyValue&); - void setHillshadeIlluminationDirectionTransition(const TransitionOptions&); - TransitionOptions getHillshadeIlluminationDirectionTransition() const; - - static PropertyValue getDefaultHillshadeIlluminationAnchor(); - const PropertyValue& getHillshadeIlluminationAnchor() const; - void setHillshadeIlluminationAnchor(const PropertyValue&); - void setHillshadeIlluminationAnchorTransition(const TransitionOptions&); - TransitionOptions getHillshadeIlluminationAnchorTransition() const; + static PropertyValue getDefaultHillshadeAccentColor(); + const PropertyValue& getHillshadeAccentColor() const; + void setHillshadeAccentColor(const PropertyValue&); + void setHillshadeAccentColorTransition(const TransitionOptions&); + TransitionOptions getHillshadeAccentColorTransition() const; static PropertyValue getDefaultHillshadeExaggeration(); const PropertyValue& getHillshadeExaggeration() const; @@ -42,23 +36,29 @@ public: void setHillshadeExaggerationTransition(const TransitionOptions&); TransitionOptions getHillshadeExaggerationTransition() const; - static PropertyValue getDefaultHillshadeShadowColor(); - const PropertyValue& getHillshadeShadowColor() const; - void setHillshadeShadowColor(const PropertyValue&); - void setHillshadeShadowColorTransition(const TransitionOptions&); - TransitionOptions getHillshadeShadowColorTransition() const; - static PropertyValue getDefaultHillshadeHighlightColor(); const PropertyValue& getHillshadeHighlightColor() const; void setHillshadeHighlightColor(const PropertyValue&); void setHillshadeHighlightColorTransition(const TransitionOptions&); TransitionOptions getHillshadeHighlightColorTransition() const; - static PropertyValue getDefaultHillshadeAccentColor(); - const PropertyValue& getHillshadeAccentColor() const; - void setHillshadeAccentColor(const PropertyValue&); - void setHillshadeAccentColorTransition(const TransitionOptions&); - TransitionOptions getHillshadeAccentColorTransition() const; + static PropertyValue getDefaultHillshadeIlluminationAnchor(); + const PropertyValue& getHillshadeIlluminationAnchor() const; + void setHillshadeIlluminationAnchor(const PropertyValue&); + void setHillshadeIlluminationAnchorTransition(const TransitionOptions&); + TransitionOptions getHillshadeIlluminationAnchorTransition() const; + + static PropertyValue getDefaultHillshadeIlluminationDirection(); + const PropertyValue& getHillshadeIlluminationDirection() const; + void setHillshadeIlluminationDirection(const PropertyValue&); + void setHillshadeIlluminationDirectionTransition(const TransitionOptions&); + TransitionOptions getHillshadeIlluminationDirectionTransition() const; + + static PropertyValue getDefaultHillshadeShadowColor(); + const PropertyValue& getHillshadeShadowColor() const; + void setHillshadeShadowColor(const PropertyValue&); + void setHillshadeShadowColorTransition(const TransitionOptions&); + TransitionOptions getHillshadeShadowColorTransition() const; // Private implementation diff --git a/include/mbgl/style/layers/line_layer.hpp b/include/mbgl/style/layers/line_layer.hpp index 21fdb3653e..b68753705c 100644 --- a/include/mbgl/style/layers/line_layer.hpp +++ b/include/mbgl/style/layers/line_layer.hpp @@ -45,11 +45,11 @@ public: // Paint properties - static PropertyValue getDefaultLineOpacity(); - const PropertyValue& getLineOpacity() const; - void setLineOpacity(const PropertyValue&); - void setLineOpacityTransition(const TransitionOptions&); - TransitionOptions getLineOpacityTransition() const; + static PropertyValue getDefaultLineBlur(); + const PropertyValue& getLineBlur() const; + void setLineBlur(const PropertyValue&); + void setLineBlurTransition(const TransitionOptions&); + TransitionOptions getLineBlurTransition() const; static PropertyValue getDefaultLineColor(); const PropertyValue& getLineColor() const; @@ -57,23 +57,11 @@ public: void setLineColorTransition(const TransitionOptions&); TransitionOptions getLineColorTransition() const; - static PropertyValue> getDefaultLineTranslate(); - const PropertyValue>& getLineTranslate() const; - void setLineTranslate(const PropertyValue>&); - void setLineTranslateTransition(const TransitionOptions&); - TransitionOptions getLineTranslateTransition() const; - - static PropertyValue getDefaultLineTranslateAnchor(); - const PropertyValue& getLineTranslateAnchor() const; - void setLineTranslateAnchor(const PropertyValue&); - void setLineTranslateAnchorTransition(const TransitionOptions&); - TransitionOptions getLineTranslateAnchorTransition() const; - - static PropertyValue getDefaultLineWidth(); - const PropertyValue& getLineWidth() const; - void setLineWidth(const PropertyValue&); - void setLineWidthTransition(const TransitionOptions&); - TransitionOptions getLineWidthTransition() const; + static PropertyValue> getDefaultLineDasharray(); + const PropertyValue>& getLineDasharray() const; + void setLineDasharray(const PropertyValue>&); + void setLineDasharrayTransition(const TransitionOptions&); + TransitionOptions getLineDasharrayTransition() const; static PropertyValue getDefaultLineGapWidth(); const PropertyValue& getLineGapWidth() const; @@ -81,23 +69,23 @@ public: void setLineGapWidthTransition(const TransitionOptions&); TransitionOptions getLineGapWidthTransition() const; + static ColorRampPropertyValue getDefaultLineGradient(); + const ColorRampPropertyValue& getLineGradient() const; + void setLineGradient(const ColorRampPropertyValue&); + void setLineGradientTransition(const TransitionOptions&); + TransitionOptions getLineGradientTransition() const; + static PropertyValue getDefaultLineOffset(); const PropertyValue& getLineOffset() const; void setLineOffset(const PropertyValue&); void setLineOffsetTransition(const TransitionOptions&); TransitionOptions getLineOffsetTransition() const; - static PropertyValue getDefaultLineBlur(); - const PropertyValue& getLineBlur() const; - void setLineBlur(const PropertyValue&); - void setLineBlurTransition(const TransitionOptions&); - TransitionOptions getLineBlurTransition() const; - - static PropertyValue> getDefaultLineDasharray(); - const PropertyValue>& getLineDasharray() const; - void setLineDasharray(const PropertyValue>&); - void setLineDasharrayTransition(const TransitionOptions&); - TransitionOptions getLineDasharrayTransition() const; + static PropertyValue getDefaultLineOpacity(); + const PropertyValue& getLineOpacity() const; + void setLineOpacity(const PropertyValue&); + void setLineOpacityTransition(const TransitionOptions&); + TransitionOptions getLineOpacityTransition() const; static PropertyValue getDefaultLinePattern(); const PropertyValue& getLinePattern() const; @@ -105,11 +93,23 @@ public: void setLinePatternTransition(const TransitionOptions&); TransitionOptions getLinePatternTransition() const; - static ColorRampPropertyValue getDefaultLineGradient(); - const ColorRampPropertyValue& getLineGradient() const; - void setLineGradient(const ColorRampPropertyValue&); - void setLineGradientTransition(const TransitionOptions&); - TransitionOptions getLineGradientTransition() const; + static PropertyValue> getDefaultLineTranslate(); + const PropertyValue>& getLineTranslate() const; + void setLineTranslate(const PropertyValue>&); + void setLineTranslateTransition(const TransitionOptions&); + TransitionOptions getLineTranslateTransition() const; + + static PropertyValue getDefaultLineTranslateAnchor(); + const PropertyValue& getLineTranslateAnchor() const; + void setLineTranslateAnchor(const PropertyValue&); + void setLineTranslateAnchorTransition(const TransitionOptions&); + TransitionOptions getLineTranslateAnchorTransition() const; + + static PropertyValue getDefaultLineWidth(); + const PropertyValue& getLineWidth() const; + void setLineWidth(const PropertyValue&); + void setLineWidthTransition(const TransitionOptions&); + TransitionOptions getLineWidthTransition() const; // Private implementation diff --git a/include/mbgl/style/layers/raster_layer.hpp b/include/mbgl/style/layers/raster_layer.hpp index bdd9857c39..8bfb1b8e92 100644 --- a/include/mbgl/style/layers/raster_layer.hpp +++ b/include/mbgl/style/layers/raster_layer.hpp @@ -24,35 +24,17 @@ public: // Paint properties - static PropertyValue getDefaultRasterOpacity(); - const PropertyValue& getRasterOpacity() const; - void setRasterOpacity(const PropertyValue&); - void setRasterOpacityTransition(const TransitionOptions&); - TransitionOptions getRasterOpacityTransition() const; - - static PropertyValue getDefaultRasterHueRotate(); - const PropertyValue& getRasterHueRotate() const; - void setRasterHueRotate(const PropertyValue&); - void setRasterHueRotateTransition(const TransitionOptions&); - TransitionOptions getRasterHueRotateTransition() const; - - static PropertyValue getDefaultRasterBrightnessMin(); - const PropertyValue& getRasterBrightnessMin() const; - void setRasterBrightnessMin(const PropertyValue&); - void setRasterBrightnessMinTransition(const TransitionOptions&); - TransitionOptions getRasterBrightnessMinTransition() const; - static PropertyValue getDefaultRasterBrightnessMax(); const PropertyValue& getRasterBrightnessMax() const; void setRasterBrightnessMax(const PropertyValue&); void setRasterBrightnessMaxTransition(const TransitionOptions&); TransitionOptions getRasterBrightnessMaxTransition() const; - static PropertyValue getDefaultRasterSaturation(); - const PropertyValue& getRasterSaturation() const; - void setRasterSaturation(const PropertyValue&); - void setRasterSaturationTransition(const TransitionOptions&); - TransitionOptions getRasterSaturationTransition() const; + static PropertyValue getDefaultRasterBrightnessMin(); + const PropertyValue& getRasterBrightnessMin() const; + void setRasterBrightnessMin(const PropertyValue&); + void setRasterBrightnessMinTransition(const TransitionOptions&); + TransitionOptions getRasterBrightnessMinTransition() const; static PropertyValue getDefaultRasterContrast(); const PropertyValue& getRasterContrast() const; @@ -60,17 +42,35 @@ public: void setRasterContrastTransition(const TransitionOptions&); TransitionOptions getRasterContrastTransition() const; + static PropertyValue getDefaultRasterFadeDuration(); + const PropertyValue& getRasterFadeDuration() const; + void setRasterFadeDuration(const PropertyValue&); + void setRasterFadeDurationTransition(const TransitionOptions&); + TransitionOptions getRasterFadeDurationTransition() const; + + static PropertyValue getDefaultRasterHueRotate(); + const PropertyValue& getRasterHueRotate() const; + void setRasterHueRotate(const PropertyValue&); + void setRasterHueRotateTransition(const TransitionOptions&); + TransitionOptions getRasterHueRotateTransition() const; + + static PropertyValue getDefaultRasterOpacity(); + const PropertyValue& getRasterOpacity() const; + void setRasterOpacity(const PropertyValue&); + void setRasterOpacityTransition(const TransitionOptions&); + TransitionOptions getRasterOpacityTransition() const; + static PropertyValue getDefaultRasterResampling(); const PropertyValue& getRasterResampling() const; void setRasterResampling(const PropertyValue&); void setRasterResamplingTransition(const TransitionOptions&); TransitionOptions getRasterResamplingTransition() const; - static PropertyValue getDefaultRasterFadeDuration(); - const PropertyValue& getRasterFadeDuration() const; - void setRasterFadeDuration(const PropertyValue&); - void setRasterFadeDurationTransition(const TransitionOptions&); - TransitionOptions getRasterFadeDurationTransition() const; + static PropertyValue getDefaultRasterSaturation(); + const PropertyValue& getRasterSaturation() const; + void setRasterSaturation(const PropertyValue&); + void setRasterSaturationTransition(const TransitionOptions&); + TransitionOptions getRasterSaturationTransition() const; // Private implementation diff --git a/include/mbgl/style/layers/symbol_layer.hpp b/include/mbgl/style/layers/symbol_layer.hpp index 93275e6dd2..2493df6046 100644 --- a/include/mbgl/style/layers/symbol_layer.hpp +++ b/include/mbgl/style/layers/symbol_layer.hpp @@ -26,38 +26,46 @@ public: // Layout properties - static PropertyValue getDefaultSymbolPlacement(); - const PropertyValue& getSymbolPlacement() const; - void setSymbolPlacement(const PropertyValue&); - - static PropertyValue getDefaultSymbolSpacing(); - const PropertyValue& getSymbolSpacing() const; - void setSymbolSpacing(const PropertyValue&); - - static PropertyValue getDefaultSymbolAvoidEdges(); - const PropertyValue& getSymbolAvoidEdges() const; - void setSymbolAvoidEdges(const PropertyValue&); - - static PropertyValue getDefaultSymbolSortKey(); - const PropertyValue& getSymbolSortKey() const; - void setSymbolSortKey(const PropertyValue&); - - static PropertyValue getDefaultSymbolZOrder(); - const PropertyValue& getSymbolZOrder() const; - void setSymbolZOrder(const PropertyValue&); - static PropertyValue getDefaultIconAllowOverlap(); const PropertyValue& getIconAllowOverlap() const; void setIconAllowOverlap(const PropertyValue&); + static PropertyValue getDefaultIconAnchor(); + const PropertyValue& getIconAnchor() const; + void setIconAnchor(const PropertyValue&); + static PropertyValue getDefaultIconIgnorePlacement(); const PropertyValue& getIconIgnorePlacement() const; void setIconIgnorePlacement(const PropertyValue&); + static PropertyValue getDefaultIconImage(); + const PropertyValue& getIconImage() const; + void setIconImage(const PropertyValue&); + + static PropertyValue getDefaultIconKeepUpright(); + const PropertyValue& getIconKeepUpright() const; + void setIconKeepUpright(const PropertyValue&); + + static PropertyValue> getDefaultIconOffset(); + const PropertyValue>& getIconOffset() const; + void setIconOffset(const PropertyValue>&); + static PropertyValue getDefaultIconOptional(); const PropertyValue& getIconOptional() const; void setIconOptional(const PropertyValue&); + static PropertyValue getDefaultIconPadding(); + const PropertyValue& getIconPadding() const; + void setIconPadding(const PropertyValue&); + + static PropertyValue getDefaultIconPitchAlignment(); + const PropertyValue& getIconPitchAlignment() const; + void setIconPitchAlignment(const PropertyValue&); + + static PropertyValue getDefaultIconRotate(); + const PropertyValue& getIconRotate() const; + void setIconRotate(const PropertyValue&); + static PropertyValue getDefaultIconRotationAlignment(); const PropertyValue& getIconRotationAlignment() const; void setIconRotationAlignment(const PropertyValue&); @@ -74,41 +82,33 @@ public: const PropertyValue>& getIconTextFitPadding() const; void setIconTextFitPadding(const PropertyValue>&); - static PropertyValue getDefaultIconImage(); - const PropertyValue& getIconImage() const; - void setIconImage(const PropertyValue&); - - static PropertyValue getDefaultIconRotate(); - const PropertyValue& getIconRotate() const; - void setIconRotate(const PropertyValue&); - - static PropertyValue getDefaultIconPadding(); - const PropertyValue& getIconPadding() const; - void setIconPadding(const PropertyValue&); + static PropertyValue getDefaultSymbolAvoidEdges(); + const PropertyValue& getSymbolAvoidEdges() const; + void setSymbolAvoidEdges(const PropertyValue&); - static PropertyValue getDefaultIconKeepUpright(); - const PropertyValue& getIconKeepUpright() const; - void setIconKeepUpright(const PropertyValue&); + static PropertyValue getDefaultSymbolPlacement(); + const PropertyValue& getSymbolPlacement() const; + void setSymbolPlacement(const PropertyValue&); - static PropertyValue> getDefaultIconOffset(); - const PropertyValue>& getIconOffset() const; - void setIconOffset(const PropertyValue>&); + static PropertyValue getDefaultSymbolSortKey(); + const PropertyValue& getSymbolSortKey() const; + void setSymbolSortKey(const PropertyValue&); - static PropertyValue getDefaultIconAnchor(); - const PropertyValue& getIconAnchor() const; - void setIconAnchor(const PropertyValue&); + static PropertyValue getDefaultSymbolSpacing(); + const PropertyValue& getSymbolSpacing() const; + void setSymbolSpacing(const PropertyValue&); - static PropertyValue getDefaultIconPitchAlignment(); - const PropertyValue& getIconPitchAlignment() const; - void setIconPitchAlignment(const PropertyValue&); + static PropertyValue getDefaultSymbolZOrder(); + const PropertyValue& getSymbolZOrder() const; + void setSymbolZOrder(const PropertyValue&); - static PropertyValue getDefaultTextPitchAlignment(); - const PropertyValue& getTextPitchAlignment() const; - void setTextPitchAlignment(const PropertyValue&); + static PropertyValue getDefaultTextAllowOverlap(); + const PropertyValue& getTextAllowOverlap() const; + void setTextAllowOverlap(const PropertyValue&); - static PropertyValue getDefaultTextRotationAlignment(); - const PropertyValue& getTextRotationAlignment() const; - void setTextRotationAlignment(const PropertyValue&); + static PropertyValue getDefaultTextAnchor(); + const PropertyValue& getTextAnchor() const; + void setTextAnchor(const PropertyValue&); static PropertyValue getDefaultTextField(); const PropertyValue& getTextField() const; @@ -118,81 +118,75 @@ public: const PropertyValue>& getTextFont() const; void setTextFont(const PropertyValue>&); - static PropertyValue getDefaultTextSize(); - const PropertyValue& getTextSize() const; - void setTextSize(const PropertyValue&); - - static PropertyValue getDefaultTextMaxWidth(); - const PropertyValue& getTextMaxWidth() const; - void setTextMaxWidth(const PropertyValue&); - - static PropertyValue getDefaultTextLineHeight(); - const PropertyValue& getTextLineHeight() const; - void setTextLineHeight(const PropertyValue&); - - static PropertyValue getDefaultTextLetterSpacing(); - const PropertyValue& getTextLetterSpacing() const; - void setTextLetterSpacing(const PropertyValue&); + static PropertyValue getDefaultTextIgnorePlacement(); + const PropertyValue& getTextIgnorePlacement() const; + void setTextIgnorePlacement(const PropertyValue&); static PropertyValue getDefaultTextJustify(); const PropertyValue& getTextJustify() const; void setTextJustify(const PropertyValue&); - static PropertyValue getDefaultTextRadialOffset(); - const PropertyValue& getTextRadialOffset() const; - void setTextRadialOffset(const PropertyValue&); + static PropertyValue getDefaultTextKeepUpright(); + const PropertyValue& getTextKeepUpright() const; + void setTextKeepUpright(const PropertyValue&); - static PropertyValue> getDefaultTextVariableAnchor(); - const PropertyValue>& getTextVariableAnchor() const; - void setTextVariableAnchor(const PropertyValue>&); + static PropertyValue getDefaultTextLetterSpacing(); + const PropertyValue& getTextLetterSpacing() const; + void setTextLetterSpacing(const PropertyValue&); - static PropertyValue getDefaultTextAnchor(); - const PropertyValue& getTextAnchor() const; - void setTextAnchor(const PropertyValue&); + static PropertyValue getDefaultTextLineHeight(); + const PropertyValue& getTextLineHeight() const; + void setTextLineHeight(const PropertyValue&); static PropertyValue getDefaultTextMaxAngle(); const PropertyValue& getTextMaxAngle() const; void setTextMaxAngle(const PropertyValue&); - static PropertyValue getDefaultTextRotate(); - const PropertyValue& getTextRotate() const; - void setTextRotate(const PropertyValue&); + static PropertyValue getDefaultTextMaxWidth(); + const PropertyValue& getTextMaxWidth() const; + void setTextMaxWidth(const PropertyValue&); + + static PropertyValue> getDefaultTextOffset(); + const PropertyValue>& getTextOffset() const; + void setTextOffset(const PropertyValue>&); + + static PropertyValue getDefaultTextOptional(); + const PropertyValue& getTextOptional() const; + void setTextOptional(const PropertyValue&); static PropertyValue getDefaultTextPadding(); const PropertyValue& getTextPadding() const; void setTextPadding(const PropertyValue&); - static PropertyValue getDefaultTextKeepUpright(); - const PropertyValue& getTextKeepUpright() const; - void setTextKeepUpright(const PropertyValue&); + static PropertyValue getDefaultTextPitchAlignment(); + const PropertyValue& getTextPitchAlignment() const; + void setTextPitchAlignment(const PropertyValue&); - static PropertyValue getDefaultTextTransform(); - const PropertyValue& getTextTransform() const; - void setTextTransform(const PropertyValue&); + static PropertyValue getDefaultTextRadialOffset(); + const PropertyValue& getTextRadialOffset() const; + void setTextRadialOffset(const PropertyValue&); - static PropertyValue> getDefaultTextOffset(); - const PropertyValue>& getTextOffset() const; - void setTextOffset(const PropertyValue>&); + static PropertyValue getDefaultTextRotate(); + const PropertyValue& getTextRotate() const; + void setTextRotate(const PropertyValue&); - static PropertyValue getDefaultTextAllowOverlap(); - const PropertyValue& getTextAllowOverlap() const; - void setTextAllowOverlap(const PropertyValue&); + static PropertyValue getDefaultTextRotationAlignment(); + const PropertyValue& getTextRotationAlignment() const; + void setTextRotationAlignment(const PropertyValue&); - static PropertyValue getDefaultTextIgnorePlacement(); - const PropertyValue& getTextIgnorePlacement() const; - void setTextIgnorePlacement(const PropertyValue&); + static PropertyValue getDefaultTextSize(); + const PropertyValue& getTextSize() const; + void setTextSize(const PropertyValue&); - static PropertyValue getDefaultTextOptional(); - const PropertyValue& getTextOptional() const; - void setTextOptional(const PropertyValue&); + static PropertyValue getDefaultTextTransform(); + const PropertyValue& getTextTransform() const; + void setTextTransform(const PropertyValue&); - // Paint properties + static PropertyValue> getDefaultTextVariableAnchor(); + const PropertyValue>& getTextVariableAnchor() const; + void setTextVariableAnchor(const PropertyValue>&); - static PropertyValue getDefaultIconOpacity(); - const PropertyValue& getIconOpacity() const; - void setIconOpacity(const PropertyValue&); - void setIconOpacityTransition(const TransitionOptions&); - TransitionOptions getIconOpacityTransition() const; + // Paint properties static PropertyValue getDefaultIconColor(); const PropertyValue& getIconColor() const; @@ -200,6 +194,12 @@ public: void setIconColorTransition(const TransitionOptions&); TransitionOptions getIconColorTransition() const; + static PropertyValue getDefaultIconHaloBlur(); + const PropertyValue& getIconHaloBlur() const; + void setIconHaloBlur(const PropertyValue&); + void setIconHaloBlurTransition(const TransitionOptions&); + TransitionOptions getIconHaloBlurTransition() const; + static PropertyValue getDefaultIconHaloColor(); const PropertyValue& getIconHaloColor() const; void setIconHaloColor(const PropertyValue&); @@ -212,11 +212,11 @@ public: void setIconHaloWidthTransition(const TransitionOptions&); TransitionOptions getIconHaloWidthTransition() const; - static PropertyValue getDefaultIconHaloBlur(); - const PropertyValue& getIconHaloBlur() const; - void setIconHaloBlur(const PropertyValue&); - void setIconHaloBlurTransition(const TransitionOptions&); - TransitionOptions getIconHaloBlurTransition() const; + static PropertyValue getDefaultIconOpacity(); + const PropertyValue& getIconOpacity() const; + void setIconOpacity(const PropertyValue&); + void setIconOpacityTransition(const TransitionOptions&); + TransitionOptions getIconOpacityTransition() const; static PropertyValue> getDefaultIconTranslate(); const PropertyValue>& getIconTranslate() const; @@ -230,18 +230,18 @@ public: void setIconTranslateAnchorTransition(const TransitionOptions&); TransitionOptions getIconTranslateAnchorTransition() const; - static PropertyValue getDefaultTextOpacity(); - const PropertyValue& getTextOpacity() const; - void setTextOpacity(const PropertyValue&); - void setTextOpacityTransition(const TransitionOptions&); - TransitionOptions getTextOpacityTransition() const; - static PropertyValue getDefaultTextColor(); const PropertyValue& getTextColor() const; void setTextColor(const PropertyValue&); void setTextColorTransition(const TransitionOptions&); TransitionOptions getTextColorTransition() const; + static PropertyValue getDefaultTextHaloBlur(); + const PropertyValue& getTextHaloBlur() const; + void setTextHaloBlur(const PropertyValue&); + void setTextHaloBlurTransition(const TransitionOptions&); + TransitionOptions getTextHaloBlurTransition() const; + static PropertyValue getDefaultTextHaloColor(); const PropertyValue& getTextHaloColor() const; void setTextHaloColor(const PropertyValue&); @@ -254,11 +254,11 @@ public: void setTextHaloWidthTransition(const TransitionOptions&); TransitionOptions getTextHaloWidthTransition() const; - static PropertyValue getDefaultTextHaloBlur(); - const PropertyValue& getTextHaloBlur() const; - void setTextHaloBlur(const PropertyValue&); - void setTextHaloBlurTransition(const TransitionOptions&); - TransitionOptions getTextHaloBlurTransition() const; + static PropertyValue getDefaultTextOpacity(); + const PropertyValue& getTextOpacity() const; + void setTextOpacity(const PropertyValue&); + void setTextOpacityTransition(const TransitionOptions&); + TransitionOptions getTextOpacityTransition() const; static PropertyValue> getDefaultTextTranslate(); const PropertyValue>& getTextTranslate() const; diff --git a/include/mbgl/style/light.hpp b/include/mbgl/style/light.hpp index c82792b28d..0b65df9f1b 100644 --- a/include/mbgl/style/light.hpp +++ b/include/mbgl/style/light.hpp @@ -23,12 +23,6 @@ public: void setAnchorTransition(const TransitionOptions&); TransitionOptions getAnchorTransition() const; - static Position getDefaultPosition(); - PropertyValue getPosition() const; - void setPosition(PropertyValue); - void setPositionTransition(const TransitionOptions&); - TransitionOptions getPositionTransition() const; - static Color getDefaultColor(); PropertyValue getColor() const; void setColor(PropertyValue); @@ -41,6 +35,12 @@ public: void setIntensityTransition(const TransitionOptions&); TransitionOptions getIntensityTransition() const; + static Position getDefaultPosition(); + PropertyValue getPosition() const; + void setPosition(PropertyValue); + void setPositionTransition(const TransitionOptions&); + TransitionOptions getPositionTransition() const; + class Impl; Immutable impl; Mutable mutableImpl() const; diff --git a/scripts/generate-style-code.js b/scripts/generate-style-code.js index 0bac355071..aed676c990 100755 --- a/scripts/generate-style-code.js +++ b/scripts/generate-style-code.js @@ -197,6 +197,8 @@ const layerCpp = ejs.compile(fs.readFileSync('src/mbgl/style/layers/layer.cpp.ej const propertiesHpp = ejs.compile(fs.readFileSync('src/mbgl/style/layers/layer_properties.hpp.ejs', 'utf8'), {strict: true}); const propertiesCpp = ejs.compile(fs.readFileSync('src/mbgl/style/layers/layer_properties.cpp.ejs', 'utf8'), {strict: true}); +const collator = new Intl.Collator("en-US"); + // Add this mock property that our SDF line shader needs so that it gets added to the list of // "data driven" properties. spec.paint_line['line-floor-width'] = { @@ -214,12 +216,20 @@ const layers = Object.keys(spec.layer.type.values).map((type) => { return memo; }, []); + // JSON doesn't have a defined order. We're going to sort them alphabetically + // to get a deterministic order. + layoutProperties.sort((a, b) => collator.compare(a.name, b.name)); + const paintProperties = Object.keys(spec[`paint_${type}`]).reduce((memo, name) => { spec[`paint_${type}`][name].name = name; memo.push(spec[`paint_${type}`][name]); return memo; }, []); + // JSON doesn't have a defined order. We're going to sort them alphabetically + // to get a deterministic order. + paintProperties.sort((a, b) => collator.compare(a.name, b.name)); + return { type: type, layoutProperties: layoutProperties, @@ -254,6 +264,10 @@ const lightProperties = Object.keys(spec[`light`]).reduce((memo, name) => { return memo; }, []); +// JSON doesn't have a defined order. We're going to sort them alphabetically +// to get a deterministic order. +lightProperties.sort((a, b) => collator.compare(a.name, b.name)); + const lightHpp = ejs.compile(fs.readFileSync('include/mbgl/style/light.hpp.ejs', 'utf8'), {strict: true}); const lightCpp = ejs.compile(fs.readFileSync('src/mbgl/style/light.cpp.ejs', 'utf8'), {strict: true}); writeIfModified(`include/mbgl/style/light.hpp`, lightHpp({properties: lightProperties})); diff --git a/src/mbgl/style/layers/background_layer.cpp b/src/mbgl/style/layers/background_layer.cpp index 530c3ce6bf..76256b8d30 100644 --- a/src/mbgl/style/layers/background_layer.cpp +++ b/src/mbgl/style/layers/background_layer.cpp @@ -90,58 +90,58 @@ TransitionOptions BackgroundLayer::getBackgroundColorTransition() const { return impl().paint.template get().options; } -PropertyValue BackgroundLayer::getDefaultBackgroundPattern() { - return { "" }; +PropertyValue BackgroundLayer::getDefaultBackgroundOpacity() { + return { 1 }; } -const PropertyValue& BackgroundLayer::getBackgroundPattern() const { - return impl().paint.template get().value; +const PropertyValue& BackgroundLayer::getBackgroundOpacity() const { + return impl().paint.template get().value; } -void BackgroundLayer::setBackgroundPattern(const PropertyValue& value) { - if (value == getBackgroundPattern()) +void BackgroundLayer::setBackgroundOpacity(const PropertyValue& value) { + if (value == getBackgroundOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void BackgroundLayer::setBackgroundPatternTransition(const TransitionOptions& options) { +void BackgroundLayer::setBackgroundOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions BackgroundLayer::getBackgroundPatternTransition() const { - return impl().paint.template get().options; +TransitionOptions BackgroundLayer::getBackgroundOpacityTransition() const { + return impl().paint.template get().options; } -PropertyValue BackgroundLayer::getDefaultBackgroundOpacity() { - return { 1 }; +PropertyValue BackgroundLayer::getDefaultBackgroundPattern() { + return { "" }; } -const PropertyValue& BackgroundLayer::getBackgroundOpacity() const { - return impl().paint.template get().value; +const PropertyValue& BackgroundLayer::getBackgroundPattern() const { + return impl().paint.template get().value; } -void BackgroundLayer::setBackgroundOpacity(const PropertyValue& value) { - if (value == getBackgroundOpacity()) +void BackgroundLayer::setBackgroundPattern(const PropertyValue& value) { + if (value == getBackgroundPattern()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void BackgroundLayer::setBackgroundOpacityTransition(const TransitionOptions& options) { +void BackgroundLayer::setBackgroundPatternTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions BackgroundLayer::getBackgroundOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions BackgroundLayer::getBackgroundPatternTransition() const { + return impl().paint.template get().options; } using namespace conversion; @@ -149,20 +149,20 @@ using namespace conversion; optional BackgroundLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { BackgroundColor, - BackgroundPattern, BackgroundOpacity, + BackgroundPattern, BackgroundColorTransition, - BackgroundPatternTransition, BackgroundOpacityTransition, + BackgroundPatternTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ { "background-color", static_cast(Property::BackgroundColor) }, - { "background-pattern", static_cast(Property::BackgroundPattern) }, { "background-opacity", static_cast(Property::BackgroundOpacity) }, + { "background-pattern", static_cast(Property::BackgroundPattern) }, { "background-color-transition", static_cast(Property::BackgroundColorTransition) }, - { "background-pattern-transition", static_cast(Property::BackgroundPatternTransition) }, - { "background-opacity-transition", static_cast(Property::BackgroundOpacityTransition) } + { "background-opacity-transition", static_cast(Property::BackgroundOpacityTransition) }, + { "background-pattern-transition", static_cast(Property::BackgroundPatternTransition) } }); const auto it = properties.find(name.c_str()); @@ -185,26 +185,26 @@ optional BackgroundLayer::setPaintProperty(const std::string& name, const } - if (property == Property::BackgroundPattern) { + if (property == Property::BackgroundOpacity) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setBackgroundPattern(*typedValue); + setBackgroundOpacity(*typedValue); return nullopt; } - if (property == Property::BackgroundOpacity) { + if (property == Property::BackgroundPattern) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setBackgroundOpacity(*typedValue); + setBackgroundPattern(*typedValue); return nullopt; } @@ -221,13 +221,13 @@ optional BackgroundLayer::setPaintProperty(const std::string& name, const return nullopt; } - if (property == Property::BackgroundPatternTransition) { - setBackgroundPatternTransition(*transition); + if (property == Property::BackgroundOpacityTransition) { + setBackgroundOpacityTransition(*transition); return nullopt; } - if (property == Property::BackgroundOpacityTransition) { - setBackgroundOpacityTransition(*transition); + if (property == Property::BackgroundPatternTransition) { + setBackgroundPatternTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/background_layer_properties.hpp b/src/mbgl/style/layers/background_layer_properties.hpp index 3765e2e569..371e8639f1 100644 --- a/src/mbgl/style/layers/background_layer_properties.hpp +++ b/src/mbgl/style/layers/background_layer_properties.hpp @@ -18,18 +18,18 @@ struct BackgroundColor : PaintProperty { static Color defaultValue() { return Color::black(); } }; -struct BackgroundPattern : CrossFadedPaintProperty { - static std::string defaultValue() { return ""; } -}; - struct BackgroundOpacity : PaintProperty { static float defaultValue() { return 1; } }; +struct BackgroundPattern : CrossFadedPaintProperty { + static std::string defaultValue() { return ""; } +}; + class BackgroundPaintProperties : public Properties< BackgroundColor, - BackgroundPattern, - BackgroundOpacity + BackgroundOpacity, + BackgroundPattern > {}; class BackgroundLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/circle_layer.cpp b/src/mbgl/style/layers/circle_layer.cpp index 2759549e1c..a95193d651 100644 --- a/src/mbgl/style/layers/circle_layer.cpp +++ b/src/mbgl/style/layers/circle_layer.cpp @@ -63,31 +63,31 @@ void CircleLayer::Impl::stringifyLayout(rapidjson::Writer CircleLayer::getDefaultCircleRadius() { - return { 5 }; +PropertyValue CircleLayer::getDefaultCircleBlur() { + return { 0 }; } -const PropertyValue& CircleLayer::getCircleRadius() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleBlur() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleRadius(const PropertyValue& value) { - if (value == getCircleRadius()) +void CircleLayer::setCircleBlur(const PropertyValue& value) { + if (value == getCircleBlur()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleRadiusTransition(const TransitionOptions& options) { +void CircleLayer::setCircleBlurTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleRadiusTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleBlurTransition() const { + return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleColor() { @@ -117,166 +117,166 @@ TransitionOptions CircleLayer::getCircleColorTransition() const { return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCircleBlur() { - return { 0 }; +PropertyValue CircleLayer::getDefaultCircleOpacity() { + return { 1 }; } -const PropertyValue& CircleLayer::getCircleBlur() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleOpacity() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleBlur(const PropertyValue& value) { - if (value == getCircleBlur()) +void CircleLayer::setCircleOpacity(const PropertyValue& value) { + if (value == getCircleOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleBlurTransition(const TransitionOptions& options) { +void CircleLayer::setCircleOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleBlurTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleOpacityTransition() const { + return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCircleOpacity() { - return { 1 }; +PropertyValue CircleLayer::getDefaultCirclePitchAlignment() { + return { AlignmentType::Viewport }; } -const PropertyValue& CircleLayer::getCircleOpacity() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCirclePitchAlignment() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleOpacity(const PropertyValue& value) { - if (value == getCircleOpacity()) +void CircleLayer::setCirclePitchAlignment(const PropertyValue& value) { + if (value == getCirclePitchAlignment()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleOpacityTransition(const TransitionOptions& options) { +void CircleLayer::setCirclePitchAlignmentTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCirclePitchAlignmentTransition() const { + return impl().paint.template get().options; } -PropertyValue> CircleLayer::getDefaultCircleTranslate() { - return { {{ 0, 0 }} }; +PropertyValue CircleLayer::getDefaultCirclePitchScale() { + return { CirclePitchScaleType::Map }; } -const PropertyValue>& CircleLayer::getCircleTranslate() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCirclePitchScale() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleTranslate(const PropertyValue>& value) { - if (value == getCircleTranslate()) +void CircleLayer::setCirclePitchScale(const PropertyValue& value) { + if (value == getCirclePitchScale()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleTranslateTransition(const TransitionOptions& options) { +void CircleLayer::setCirclePitchScaleTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleTranslateTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCirclePitchScaleTransition() const { + return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCircleTranslateAnchor() { - return { TranslateAnchorType::Map }; +PropertyValue CircleLayer::getDefaultCircleRadius() { + return { 5 }; } -const PropertyValue& CircleLayer::getCircleTranslateAnchor() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleRadius() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleTranslateAnchor(const PropertyValue& value) { - if (value == getCircleTranslateAnchor()) +void CircleLayer::setCircleRadius(const PropertyValue& value) { + if (value == getCircleRadius()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleTranslateAnchorTransition(const TransitionOptions& options) { +void CircleLayer::setCircleRadiusTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleTranslateAnchorTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleRadiusTransition() const { + return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCirclePitchScale() { - return { CirclePitchScaleType::Map }; +PropertyValue CircleLayer::getDefaultCircleStrokeColor() { + return { Color::black() }; } -const PropertyValue& CircleLayer::getCirclePitchScale() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleStrokeColor() const { + return impl().paint.template get().value; } -void CircleLayer::setCirclePitchScale(const PropertyValue& value) { - if (value == getCirclePitchScale()) +void CircleLayer::setCircleStrokeColor(const PropertyValue& value) { + if (value == getCircleStrokeColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCirclePitchScaleTransition(const TransitionOptions& options) { +void CircleLayer::setCircleStrokeColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCirclePitchScaleTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleStrokeColorTransition() const { + return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCirclePitchAlignment() { - return { AlignmentType::Viewport }; +PropertyValue CircleLayer::getDefaultCircleStrokeOpacity() { + return { 1 }; } -const PropertyValue& CircleLayer::getCirclePitchAlignment() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleStrokeOpacity() const { + return impl().paint.template get().value; } -void CircleLayer::setCirclePitchAlignment(const PropertyValue& value) { - if (value == getCirclePitchAlignment()) +void CircleLayer::setCircleStrokeOpacity(const PropertyValue& value) { + if (value == getCircleStrokeOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCirclePitchAlignmentTransition(const TransitionOptions& options) { +void CircleLayer::setCircleStrokeOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCirclePitchAlignmentTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleStrokeOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue CircleLayer::getDefaultCircleStrokeWidth() { @@ -306,111 +306,111 @@ TransitionOptions CircleLayer::getCircleStrokeWidthTransition() const { return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCircleStrokeColor() { - return { Color::black() }; +PropertyValue> CircleLayer::getDefaultCircleTranslate() { + return { {{ 0, 0 }} }; } -const PropertyValue& CircleLayer::getCircleStrokeColor() const { - return impl().paint.template get().value; +const PropertyValue>& CircleLayer::getCircleTranslate() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleStrokeColor(const PropertyValue& value) { - if (value == getCircleStrokeColor()) +void CircleLayer::setCircleTranslate(const PropertyValue>& value) { + if (value == getCircleTranslate()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleStrokeColorTransition(const TransitionOptions& options) { +void CircleLayer::setCircleTranslateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleStrokeColorTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleTranslateTransition() const { + return impl().paint.template get().options; } -PropertyValue CircleLayer::getDefaultCircleStrokeOpacity() { - return { 1 }; +PropertyValue CircleLayer::getDefaultCircleTranslateAnchor() { + return { TranslateAnchorType::Map }; } -const PropertyValue& CircleLayer::getCircleStrokeOpacity() const { - return impl().paint.template get().value; +const PropertyValue& CircleLayer::getCircleTranslateAnchor() const { + return impl().paint.template get().value; } -void CircleLayer::setCircleStrokeOpacity(const PropertyValue& value) { - if (value == getCircleStrokeOpacity()) +void CircleLayer::setCircleTranslateAnchor(const PropertyValue& value) { + if (value == getCircleTranslateAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void CircleLayer::setCircleStrokeOpacityTransition(const TransitionOptions& options) { +void CircleLayer::setCircleTranslateAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions CircleLayer::getCircleStrokeOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions CircleLayer::getCircleTranslateAnchorTransition() const { + return impl().paint.template get().options; } using namespace conversion; optional CircleLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - CircleRadius, - CircleColor, CircleBlur, + CircleColor, CircleOpacity, - CircleTranslate, - CircleTranslateAnchor, - CirclePitchScale, CirclePitchAlignment, - CircleStrokeWidth, + CirclePitchScale, + CircleRadius, CircleStrokeColor, CircleStrokeOpacity, - CircleRadiusTransition, - CircleColorTransition, + CircleStrokeWidth, + CircleTranslate, + CircleTranslateAnchor, CircleBlurTransition, + CircleColorTransition, CircleOpacityTransition, - CircleTranslateTransition, - CircleTranslateAnchorTransition, - CirclePitchScaleTransition, CirclePitchAlignmentTransition, - CircleStrokeWidthTransition, + CirclePitchScaleTransition, + CircleRadiusTransition, CircleStrokeColorTransition, CircleStrokeOpacityTransition, + CircleStrokeWidthTransition, + CircleTranslateTransition, + CircleTranslateAnchorTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "circle-radius", static_cast(Property::CircleRadius) }, - { "circle-color", static_cast(Property::CircleColor) }, { "circle-blur", static_cast(Property::CircleBlur) }, + { "circle-color", static_cast(Property::CircleColor) }, { "circle-opacity", static_cast(Property::CircleOpacity) }, - { "circle-translate", static_cast(Property::CircleTranslate) }, - { "circle-translate-anchor", static_cast(Property::CircleTranslateAnchor) }, - { "circle-pitch-scale", static_cast(Property::CirclePitchScale) }, { "circle-pitch-alignment", static_cast(Property::CirclePitchAlignment) }, - { "circle-stroke-width", static_cast(Property::CircleStrokeWidth) }, + { "circle-pitch-scale", static_cast(Property::CirclePitchScale) }, + { "circle-radius", static_cast(Property::CircleRadius) }, { "circle-stroke-color", static_cast(Property::CircleStrokeColor) }, { "circle-stroke-opacity", static_cast(Property::CircleStrokeOpacity) }, - { "circle-radius-transition", static_cast(Property::CircleRadiusTransition) }, - { "circle-color-transition", static_cast(Property::CircleColorTransition) }, + { "circle-stroke-width", static_cast(Property::CircleStrokeWidth) }, + { "circle-translate", static_cast(Property::CircleTranslate) }, + { "circle-translate-anchor", static_cast(Property::CircleTranslateAnchor) }, { "circle-blur-transition", static_cast(Property::CircleBlurTransition) }, + { "circle-color-transition", static_cast(Property::CircleColorTransition) }, { "circle-opacity-transition", static_cast(Property::CircleOpacityTransition) }, - { "circle-translate-transition", static_cast(Property::CircleTranslateTransition) }, - { "circle-translate-anchor-transition", static_cast(Property::CircleTranslateAnchorTransition) }, - { "circle-pitch-scale-transition", static_cast(Property::CirclePitchScaleTransition) }, { "circle-pitch-alignment-transition", static_cast(Property::CirclePitchAlignmentTransition) }, - { "circle-stroke-width-transition", static_cast(Property::CircleStrokeWidthTransition) }, + { "circle-pitch-scale-transition", static_cast(Property::CirclePitchScaleTransition) }, + { "circle-radius-transition", static_cast(Property::CircleRadiusTransition) }, { "circle-stroke-color-transition", static_cast(Property::CircleStrokeColorTransition) }, - { "circle-stroke-opacity-transition", static_cast(Property::CircleStrokeOpacityTransition) } + { "circle-stroke-opacity-transition", static_cast(Property::CircleStrokeOpacityTransition) }, + { "circle-stroke-width-transition", static_cast(Property::CircleStrokeWidthTransition) }, + { "circle-translate-transition", static_cast(Property::CircleTranslateTransition) }, + { "circle-translate-anchor-transition", static_cast(Property::CircleTranslateAnchorTransition) } }); const auto it = properties.find(name.c_str()); @@ -421,18 +421,13 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con auto property = static_cast(it->second); - if (property == Property::CircleRadius || property == Property::CircleBlur || property == Property::CircleOpacity || property == Property::CircleStrokeWidth || property == Property::CircleStrokeOpacity) { + if (property == Property::CircleBlur || property == Property::CircleOpacity || property == Property::CircleRadius || property == Property::CircleStrokeOpacity || property == Property::CircleStrokeWidth) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::CircleRadius) { - setCircleRadius(*typedValue); - return nullopt; - } - if (property == Property::CircleBlur) { setCircleBlur(*typedValue); return nullopt; @@ -443,8 +438,8 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::CircleStrokeWidth) { - setCircleStrokeWidth(*typedValue); + if (property == Property::CircleRadius) { + setCircleRadius(*typedValue); return nullopt; } @@ -453,6 +448,11 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con return nullopt; } + if (property == Property::CircleStrokeWidth) { + setCircleStrokeWidth(*typedValue); + return nullopt; + } + } if (property == Property::CircleColor || property == Property::CircleStrokeColor) { @@ -474,50 +474,50 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con } - if (property == Property::CircleTranslate) { + if (property == Property::CirclePitchAlignment) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setCircleTranslate(*typedValue); + setCirclePitchAlignment(*typedValue); return nullopt; } - if (property == Property::CircleTranslateAnchor) { + if (property == Property::CirclePitchScale) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setCircleTranslateAnchor(*typedValue); + setCirclePitchScale(*typedValue); return nullopt; } - if (property == Property::CirclePitchScale) { + if (property == Property::CircleTranslate) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } - setCirclePitchScale(*typedValue); + setCircleTranslate(*typedValue); return nullopt; } - if (property == Property::CirclePitchAlignment) { + if (property == Property::CircleTranslateAnchor) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setCirclePitchAlignment(*typedValue); + setCircleTranslateAnchor(*typedValue); return nullopt; } @@ -529,8 +529,8 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con return error; } - if (property == Property::CircleRadiusTransition) { - setCircleRadiusTransition(*transition); + if (property == Property::CircleBlurTransition) { + setCircleBlurTransition(*transition); return nullopt; } @@ -539,33 +539,33 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::CircleBlurTransition) { - setCircleBlurTransition(*transition); + if (property == Property::CircleOpacityTransition) { + setCircleOpacityTransition(*transition); return nullopt; } - if (property == Property::CircleOpacityTransition) { - setCircleOpacityTransition(*transition); + if (property == Property::CirclePitchAlignmentTransition) { + setCirclePitchAlignmentTransition(*transition); return nullopt; } - if (property == Property::CircleTranslateTransition) { - setCircleTranslateTransition(*transition); + if (property == Property::CirclePitchScaleTransition) { + setCirclePitchScaleTransition(*transition); return nullopt; } - if (property == Property::CircleTranslateAnchorTransition) { - setCircleTranslateAnchorTransition(*transition); + if (property == Property::CircleRadiusTransition) { + setCircleRadiusTransition(*transition); return nullopt; } - if (property == Property::CirclePitchScaleTransition) { - setCirclePitchScaleTransition(*transition); + if (property == Property::CircleStrokeColorTransition) { + setCircleStrokeColorTransition(*transition); return nullopt; } - if (property == Property::CirclePitchAlignmentTransition) { - setCirclePitchAlignmentTransition(*transition); + if (property == Property::CircleStrokeOpacityTransition) { + setCircleStrokeOpacityTransition(*transition); return nullopt; } @@ -574,13 +574,13 @@ optional CircleLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::CircleStrokeColorTransition) { - setCircleStrokeColorTransition(*transition); + if (property == Property::CircleTranslateTransition) { + setCircleTranslateTransition(*transition); return nullopt; } - if (property == Property::CircleStrokeOpacityTransition) { - setCircleStrokeOpacityTransition(*transition); + if (property == Property::CircleTranslateAnchorTransition) { + setCircleTranslateAnchorTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/circle_layer_properties.hpp b/src/mbgl/style/layers/circle_layer_properties.hpp index ef08e65455..17727c79eb 100644 --- a/src/mbgl/style/layers/circle_layer_properties.hpp +++ b/src/mbgl/style/layers/circle_layer_properties.hpp @@ -14,40 +14,28 @@ namespace mbgl { namespace style { -struct CircleRadius : DataDrivenPaintProperty { - static float defaultValue() { return 5; } +struct CircleBlur : DataDrivenPaintProperty { + static float defaultValue() { return 0; } }; struct CircleColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } }; -struct CircleBlur : DataDrivenPaintProperty { - static float defaultValue() { return 0; } -}; - struct CircleOpacity : DataDrivenPaintProperty { static float defaultValue() { return 1; } }; -struct CircleTranslate : PaintProperty> { - static std::array defaultValue() { return {{ 0, 0 }}; } -}; - -struct CircleTranslateAnchor : PaintProperty { - static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } +struct CirclePitchAlignment : PaintProperty { + static AlignmentType defaultValue() { return AlignmentType::Viewport; } }; struct CirclePitchScale : PaintProperty { static CirclePitchScaleType defaultValue() { return CirclePitchScaleType::Map; } }; -struct CirclePitchAlignment : PaintProperty { - static AlignmentType defaultValue() { return AlignmentType::Viewport; } -}; - -struct CircleStrokeWidth : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct CircleRadius : DataDrivenPaintProperty { + static float defaultValue() { return 5; } }; struct CircleStrokeColor : DataDrivenPaintProperty { @@ -58,18 +46,30 @@ struct CircleStrokeOpacity : DataDrivenPaintProperty { + static float defaultValue() { return 0; } +}; + +struct CircleTranslate : PaintProperty> { + static std::array defaultValue() { return {{ 0, 0 }}; } +}; + +struct CircleTranslateAnchor : PaintProperty { + static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } +}; + class CirclePaintProperties : public Properties< - CircleRadius, - CircleColor, CircleBlur, + CircleColor, CircleOpacity, - CircleTranslate, - CircleTranslateAnchor, - CirclePitchScale, CirclePitchAlignment, - CircleStrokeWidth, + CirclePitchScale, + CircleRadius, CircleStrokeColor, - CircleStrokeOpacity + CircleStrokeOpacity, + CircleStrokeWidth, + CircleTranslate, + CircleTranslateAnchor > {}; class CircleLayerProperties final : public LayerProperties { 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 FillExtrusionLayer::getDefaultFillExtrusionOpacity() { - return { 1 }; +PropertyValue FillExtrusionLayer::getDefaultFillExtrusionBase() { + return { 0 }; } -const PropertyValue& FillExtrusionLayer::getFillExtrusionOpacity() const { - return impl().paint.template get().value; +const PropertyValue& FillExtrusionLayer::getFillExtrusionBase() const { + return impl().paint.template get().value; } -void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue& value) { - if (value == getFillExtrusionOpacity()) +void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue& value) { + if (value == getFillExtrusionBase()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().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().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const { + return impl().paint.template get().options; } PropertyValue FillExtrusionLayer::getDefaultFillExtrusionColor() { @@ -117,58 +117,58 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionColorTransition() const { return impl().paint.template get().options; } -PropertyValue> FillExtrusionLayer::getDefaultFillExtrusionTranslate() { - return { {{ 0, 0 }} }; +PropertyValue FillExtrusionLayer::getDefaultFillExtrusionHeight() { + return { 0 }; } -const PropertyValue>& FillExtrusionLayer::getFillExtrusionTranslate() const { - return impl().paint.template get().value; +const PropertyValue& FillExtrusionLayer::getFillExtrusionHeight() const { + return impl().paint.template get().value; } -void FillExtrusionLayer::setFillExtrusionTranslate(const PropertyValue>& value) { - if (value == getFillExtrusionTranslate()) +void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue& value) { + if (value == getFillExtrusionHeight()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().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().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateTransition() const { - return impl().paint.template get().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const { + return impl().paint.template get().options; } -PropertyValue FillExtrusionLayer::getDefaultFillExtrusionTranslateAnchor() { - return { TranslateAnchorType::Map }; +PropertyValue FillExtrusionLayer::getDefaultFillExtrusionOpacity() { + return { 1 }; } -const PropertyValue& FillExtrusionLayer::getFillExtrusionTranslateAnchor() const { - return impl().paint.template get().value; +const PropertyValue& FillExtrusionLayer::getFillExtrusionOpacity() const { + return impl().paint.template get().value; } -void FillExtrusionLayer::setFillExtrusionTranslateAnchor(const PropertyValue& value) { - if (value == getFillExtrusionTranslateAnchor()) +void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue& value) { + if (value == getFillExtrusionOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().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().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateAnchorTransition() const { - return impl().paint.template get().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue FillExtrusionLayer::getDefaultFillExtrusionPattern() { @@ -198,58 +198,58 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionPatternTransition() const return impl().paint.template get().options; } -PropertyValue FillExtrusionLayer::getDefaultFillExtrusionHeight() { - return { 0 }; +PropertyValue> FillExtrusionLayer::getDefaultFillExtrusionTranslate() { + return { {{ 0, 0 }} }; } -const PropertyValue& FillExtrusionLayer::getFillExtrusionHeight() const { - return impl().paint.template get().value; +const PropertyValue>& FillExtrusionLayer::getFillExtrusionTranslate() const { + return impl().paint.template get().value; } -void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue& value) { - if (value == getFillExtrusionHeight()) +void FillExtrusionLayer::setFillExtrusionTranslate(const PropertyValue>& value) { + if (value == getFillExtrusionTranslate()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().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().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const { - return impl().paint.template get().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateTransition() const { + return impl().paint.template get().options; } -PropertyValue FillExtrusionLayer::getDefaultFillExtrusionBase() { - return { 0 }; +PropertyValue FillExtrusionLayer::getDefaultFillExtrusionTranslateAnchor() { + return { TranslateAnchorType::Map }; } -const PropertyValue& FillExtrusionLayer::getFillExtrusionBase() const { - return impl().paint.template get().value; +const PropertyValue& FillExtrusionLayer::getFillExtrusionTranslateAnchor() const { + return impl().paint.template get().value; } -void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue& value) { - if (value == getFillExtrusionBase()) +void FillExtrusionLayer::setFillExtrusionTranslateAnchor(const PropertyValue& value) { + if (value == getFillExtrusionTranslateAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().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().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const { - return impl().paint.template get().options; +TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateAnchorTransition() const { + return impl().paint.template get().options; } PropertyValue FillExtrusionLayer::getDefaultFillExtrusionVerticalGradient() { @@ -283,40 +283,40 @@ using namespace conversion; optional 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({ - { "fill-extrusion-opacity", static_cast(Property::FillExtrusionOpacity) }, + { "fill-extrusion-base", static_cast(Property::FillExtrusionBase) }, { "fill-extrusion-color", static_cast(Property::FillExtrusionColor) }, + { "fill-extrusion-height", static_cast(Property::FillExtrusionHeight) }, + { "fill-extrusion-opacity", static_cast(Property::FillExtrusionOpacity) }, + { "fill-extrusion-pattern", static_cast(Property::FillExtrusionPattern) }, { "fill-extrusion-translate", static_cast(Property::FillExtrusionTranslate) }, { "fill-extrusion-translate-anchor", static_cast(Property::FillExtrusionTranslateAnchor) }, - { "fill-extrusion-pattern", static_cast(Property::FillExtrusionPattern) }, - { "fill-extrusion-height", static_cast(Property::FillExtrusionHeight) }, - { "fill-extrusion-base", static_cast(Property::FillExtrusionBase) }, { "fill-extrusion-vertical-gradient", static_cast(Property::FillExtrusionVerticalGradient) }, - { "fill-extrusion-opacity-transition", static_cast(Property::FillExtrusionOpacityTransition) }, + { "fill-extrusion-base-transition", static_cast(Property::FillExtrusionBaseTransition) }, { "fill-extrusion-color-transition", static_cast(Property::FillExtrusionColorTransition) }, + { "fill-extrusion-height-transition", static_cast(Property::FillExtrusionHeightTransition) }, + { "fill-extrusion-opacity-transition", static_cast(Property::FillExtrusionOpacityTransition) }, + { "fill-extrusion-pattern-transition", static_cast(Property::FillExtrusionPatternTransition) }, { "fill-extrusion-translate-transition", static_cast(Property::FillExtrusionTranslateTransition) }, { "fill-extrusion-translate-anchor-transition", static_cast(Property::FillExtrusionTranslateAnchorTransition) }, - { "fill-extrusion-pattern-transition", static_cast(Property::FillExtrusionPatternTransition) }, - { "fill-extrusion-height-transition", static_cast(Property::FillExtrusionHeightTransition) }, - { "fill-extrusion-base-transition", static_cast(Property::FillExtrusionBaseTransition) }, { "fill-extrusion-vertical-gradient-transition", static_cast(Property::FillExtrusionVerticalGradientTransition) } }); @@ -328,15 +328,22 @@ optional FillExtrusionLayer::setPaintProperty(const std::string& name, co auto property = static_cast(it->second); - if (property == Property::FillExtrusionOpacity) { + if (property == Property::FillExtrusionBase || property == Property::FillExtrusionHeight) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(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 FillExtrusionLayer::setPaintProperty(const std::string& name, co } - if (property == Property::FillExtrusionTranslate) { + if (property == Property::FillExtrusionOpacity) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional> typedValue = convert>(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> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(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> typedValue = convert>(value, error, true, false); + optional>> typedValue = convert>>(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> typedValue = convert>(value, error, true, false); + optional> typedValue = convert>(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 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 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 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; } diff --git a/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp b/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp index c90594036b..f5aeaf5c73 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp +++ b/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp @@ -14,32 +14,32 @@ namespace mbgl { namespace style { -struct FillExtrusionOpacity : PaintProperty { - static float defaultValue() { return 1; } +struct FillExtrusionBase : DataDrivenPaintProperty { + static float defaultValue() { return 0; } }; struct FillExtrusionColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } }; -struct FillExtrusionTranslate : PaintProperty> { - static std::array defaultValue() { return {{ 0, 0 }}; } +struct FillExtrusionHeight : DataDrivenPaintProperty { + static float defaultValue() { return 0; } }; -struct FillExtrusionTranslateAnchor : PaintProperty { - static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } +struct FillExtrusionOpacity : PaintProperty { + static float defaultValue() { return 1; } }; struct FillExtrusionPattern : CrossFadedDataDrivenPaintProperty { static std::string defaultValue() { return ""; } }; -struct FillExtrusionHeight : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct FillExtrusionTranslate : PaintProperty> { + static std::array defaultValue() { return {{ 0, 0 }}; } }; -struct FillExtrusionBase : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct FillExtrusionTranslateAnchor : PaintProperty { + static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } }; struct FillExtrusionVerticalGradient : PaintProperty { @@ -47,13 +47,13 @@ struct FillExtrusionVerticalGradient : PaintProperty { }; class FillExtrusionPaintProperties : public Properties< - FillExtrusionOpacity, + FillExtrusionBase, FillExtrusionColor, + FillExtrusionHeight, + FillExtrusionOpacity, + FillExtrusionPattern, FillExtrusionTranslate, FillExtrusionTranslateAnchor, - FillExtrusionPattern, - FillExtrusionHeight, - FillExtrusionBase, FillExtrusionVerticalGradient > {}; diff --git a/src/mbgl/style/layers/fill_layer.cpp b/src/mbgl/style/layers/fill_layer.cpp index 0511e06828..f35f62fb1d 100644 --- a/src/mbgl/style/layers/fill_layer.cpp +++ b/src/mbgl/style/layers/fill_layer.cpp @@ -90,58 +90,58 @@ TransitionOptions FillLayer::getFillAntialiasTransition() const { return impl().paint.template get().options; } -PropertyValue FillLayer::getDefaultFillOpacity() { - return { 1 }; +PropertyValue FillLayer::getDefaultFillColor() { + return { Color::black() }; } -const PropertyValue& FillLayer::getFillOpacity() const { - return impl().paint.template get().value; +const PropertyValue& FillLayer::getFillColor() const { + return impl().paint.template get().value; } -void FillLayer::setFillOpacity(const PropertyValue& value) { - if (value == getFillOpacity()) +void FillLayer::setFillColor(const PropertyValue& value) { + if (value == getFillColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillLayer::setFillOpacityTransition(const TransitionOptions& options) { +void FillLayer::setFillColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillLayer::getFillOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions FillLayer::getFillColorTransition() const { + return impl().paint.template get().options; } -PropertyValue FillLayer::getDefaultFillColor() { - return { Color::black() }; +PropertyValue FillLayer::getDefaultFillOpacity() { + return { 1 }; } -const PropertyValue& FillLayer::getFillColor() const { - return impl().paint.template get().value; +const PropertyValue& FillLayer::getFillOpacity() const { + return impl().paint.template get().value; } -void FillLayer::setFillColor(const PropertyValue& value) { - if (value == getFillColor()) +void FillLayer::setFillOpacity(const PropertyValue& value) { + if (value == getFillOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void FillLayer::setFillColorTransition(const TransitionOptions& options) { +void FillLayer::setFillOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions FillLayer::getFillColorTransition() const { - return impl().paint.template get().options; +TransitionOptions FillLayer::getFillOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue FillLayer::getDefaultFillOutlineColor() { @@ -171,6 +171,33 @@ TransitionOptions FillLayer::getFillOutlineColorTransition() const { return impl().paint.template get().options; } +PropertyValue FillLayer::getDefaultFillPattern() { + return { "" }; +} + +const PropertyValue& FillLayer::getFillPattern() const { + return impl().paint.template get().value; +} + +void FillLayer::setFillPattern(const PropertyValue& value) { + if (value == getFillPattern()) + return; + auto impl_ = mutableImpl(); + impl_->paint.template get().value = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void FillLayer::setFillPatternTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->paint.template get().options = options; + baseImpl = std::move(impl_); +} + +TransitionOptions FillLayer::getFillPatternTransition() const { + return impl().paint.template get().options; +} + PropertyValue> FillLayer::getDefaultFillTranslate() { return { {{ 0, 0 }} }; } @@ -225,68 +252,41 @@ TransitionOptions FillLayer::getFillTranslateAnchorTransition() const { return impl().paint.template get().options; } -PropertyValue FillLayer::getDefaultFillPattern() { - return { "" }; -} - -const PropertyValue& FillLayer::getFillPattern() const { - return impl().paint.template get().value; -} - -void FillLayer::setFillPattern(const PropertyValue& value) { - if (value == getFillPattern()) - return; - auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} - -void FillLayer::setFillPatternTransition(const TransitionOptions& options) { - auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; - baseImpl = std::move(impl_); -} - -TransitionOptions FillLayer::getFillPatternTransition() const { - return impl().paint.template get().options; -} - using namespace conversion; optional FillLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { FillAntialias, - FillOpacity, FillColor, + FillOpacity, FillOutlineColor, + FillPattern, FillTranslate, FillTranslateAnchor, - FillPattern, FillAntialiasTransition, - FillOpacityTransition, FillColorTransition, + FillOpacityTransition, FillOutlineColorTransition, + FillPatternTransition, FillTranslateTransition, FillTranslateAnchorTransition, - FillPatternTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ { "fill-antialias", static_cast(Property::FillAntialias) }, - { "fill-opacity", static_cast(Property::FillOpacity) }, { "fill-color", static_cast(Property::FillColor) }, + { "fill-opacity", static_cast(Property::FillOpacity) }, { "fill-outline-color", static_cast(Property::FillOutlineColor) }, + { "fill-pattern", static_cast(Property::FillPattern) }, { "fill-translate", static_cast(Property::FillTranslate) }, { "fill-translate-anchor", static_cast(Property::FillTranslateAnchor) }, - { "fill-pattern", static_cast(Property::FillPattern) }, { "fill-antialias-transition", static_cast(Property::FillAntialiasTransition) }, - { "fill-opacity-transition", static_cast(Property::FillOpacityTransition) }, { "fill-color-transition", static_cast(Property::FillColorTransition) }, + { "fill-opacity-transition", static_cast(Property::FillOpacityTransition) }, { "fill-outline-color-transition", static_cast(Property::FillOutlineColorTransition) }, + { "fill-pattern-transition", static_cast(Property::FillPatternTransition) }, { "fill-translate-transition", static_cast(Property::FillTranslateTransition) }, - { "fill-translate-anchor-transition", static_cast(Property::FillTranslateAnchorTransition) }, - { "fill-pattern-transition", static_cast(Property::FillPatternTransition) } + { "fill-translate-anchor-transition", static_cast(Property::FillTranslateAnchorTransition) } }); const auto it = properties.find(name.c_str()); @@ -309,18 +309,6 @@ optional FillLayer::setPaintProperty(const std::string& name, const Conve } - if (property == Property::FillOpacity) { - Error error; - optional> typedValue = convert>(value, error, true, false); - if (!typedValue) { - return error; - } - - setFillOpacity(*typedValue); - return nullopt; - - } - if (property == Property::FillColor || property == Property::FillOutlineColor) { Error error; optional> typedValue = convert>(value, error, true, false); @@ -340,38 +328,50 @@ optional FillLayer::setPaintProperty(const std::string& name, const Conve } - if (property == Property::FillTranslate) { + if (property == Property::FillOpacity) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - setFillTranslate(*typedValue); + setFillOpacity(*typedValue); return nullopt; } - if (property == Property::FillTranslateAnchor) { + if (property == Property::FillPattern) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - setFillTranslateAnchor(*typedValue); + setFillPattern(*typedValue); return nullopt; } - if (property == Property::FillPattern) { + if (property == Property::FillTranslate) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } - setFillPattern(*typedValue); + setFillTranslate(*typedValue); + return nullopt; + + } + + if (property == Property::FillTranslateAnchor) { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; + } + + setFillTranslateAnchor(*typedValue); return nullopt; } @@ -388,13 +388,13 @@ optional FillLayer::setPaintProperty(const std::string& name, const Conve return nullopt; } - if (property == Property::FillOpacityTransition) { - setFillOpacityTransition(*transition); + if (property == Property::FillColorTransition) { + setFillColorTransition(*transition); return nullopt; } - if (property == Property::FillColorTransition) { - setFillColorTransition(*transition); + if (property == Property::FillOpacityTransition) { + setFillOpacityTransition(*transition); return nullopt; } @@ -403,6 +403,11 @@ optional FillLayer::setPaintProperty(const std::string& name, const Conve return nullopt; } + if (property == Property::FillPatternTransition) { + setFillPatternTransition(*transition); + return nullopt; + } + if (property == Property::FillTranslateTransition) { setFillTranslateTransition(*transition); return nullopt; @@ -413,11 +418,6 @@ optional FillLayer::setPaintProperty(const std::string& name, const Conve return nullopt; } - if (property == Property::FillPatternTransition) { - setFillPatternTransition(*transition); - return nullopt; - } - return Error { "layer doesn't support this property" }; } diff --git a/src/mbgl/style/layers/fill_layer_properties.hpp b/src/mbgl/style/layers/fill_layer_properties.hpp index f76aee448b..376852d254 100644 --- a/src/mbgl/style/layers/fill_layer_properties.hpp +++ b/src/mbgl/style/layers/fill_layer_properties.hpp @@ -18,18 +18,22 @@ struct FillAntialias : PaintProperty { static bool defaultValue() { return true; } }; -struct FillOpacity : DataDrivenPaintProperty { - static float defaultValue() { return 1; } -}; - struct FillColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } }; +struct FillOpacity : DataDrivenPaintProperty { + static float defaultValue() { return 1; } +}; + struct FillOutlineColor : DataDrivenPaintProperty { static Color defaultValue() { return {}; } }; +struct FillPattern : CrossFadedDataDrivenPaintProperty { + static std::string defaultValue() { return ""; } +}; + struct FillTranslate : PaintProperty> { static std::array defaultValue() { return {{ 0, 0 }}; } }; @@ -38,18 +42,14 @@ struct FillTranslateAnchor : PaintProperty { static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } }; -struct FillPattern : CrossFadedDataDrivenPaintProperty { - static std::string defaultValue() { return ""; } -}; - class FillPaintProperties : public Properties< FillAntialias, - FillOpacity, FillColor, + FillOpacity, FillOutlineColor, + FillPattern, FillTranslate, - FillTranslateAnchor, - FillPattern + FillTranslateAnchor > {}; class FillLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/heatmap_layer.cpp b/src/mbgl/style/layers/heatmap_layer.cpp index 7d23d86f15..e13089bfd5 100644 --- a/src/mbgl/style/layers/heatmap_layer.cpp +++ b/src/mbgl/style/layers/heatmap_layer.cpp @@ -63,170 +63,170 @@ void HeatmapLayer::Impl::stringifyLayout(rapidjson::Writer HeatmapLayer::getDefaultHeatmapRadius() { - return { 30 }; +ColorRampPropertyValue HeatmapLayer::getDefaultHeatmapColor() { + conversion::Error error; + std::string rawValue = R"JSON(["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"])JSON"; + return *conversion::convertJSON(rawValue, error); } -const PropertyValue& HeatmapLayer::getHeatmapRadius() const { - return impl().paint.template get().value; +const ColorRampPropertyValue& HeatmapLayer::getHeatmapColor() const { + return impl().paint.template get().value; } -void HeatmapLayer::setHeatmapRadius(const PropertyValue& value) { - if (value == getHeatmapRadius()) +void HeatmapLayer::setHeatmapColor(const ColorRampPropertyValue& value) { + if (value == getHeatmapColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HeatmapLayer::setHeatmapRadiusTransition(const TransitionOptions& options) { +void HeatmapLayer::setHeatmapColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HeatmapLayer::getHeatmapRadiusTransition() const { - return impl().paint.template get().options; +TransitionOptions HeatmapLayer::getHeatmapColorTransition() const { + return impl().paint.template get().options; } -PropertyValue HeatmapLayer::getDefaultHeatmapWeight() { +PropertyValue HeatmapLayer::getDefaultHeatmapIntensity() { return { 1 }; } -const PropertyValue& HeatmapLayer::getHeatmapWeight() const { - return impl().paint.template get().value; +const PropertyValue& HeatmapLayer::getHeatmapIntensity() const { + return impl().paint.template get().value; } -void HeatmapLayer::setHeatmapWeight(const PropertyValue& value) { - if (value == getHeatmapWeight()) +void HeatmapLayer::setHeatmapIntensity(const PropertyValue& value) { + if (value == getHeatmapIntensity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HeatmapLayer::setHeatmapWeightTransition(const TransitionOptions& options) { +void HeatmapLayer::setHeatmapIntensityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HeatmapLayer::getHeatmapWeightTransition() const { - return impl().paint.template get().options; +TransitionOptions HeatmapLayer::getHeatmapIntensityTransition() const { + return impl().paint.template get().options; } -PropertyValue HeatmapLayer::getDefaultHeatmapIntensity() { +PropertyValue HeatmapLayer::getDefaultHeatmapOpacity() { return { 1 }; } -const PropertyValue& HeatmapLayer::getHeatmapIntensity() const { - return impl().paint.template get().value; +const PropertyValue& HeatmapLayer::getHeatmapOpacity() const { + return impl().paint.template get().value; } -void HeatmapLayer::setHeatmapIntensity(const PropertyValue& value) { - if (value == getHeatmapIntensity()) +void HeatmapLayer::setHeatmapOpacity(const PropertyValue& value) { + if (value == getHeatmapOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HeatmapLayer::setHeatmapIntensityTransition(const TransitionOptions& options) { +void HeatmapLayer::setHeatmapOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HeatmapLayer::getHeatmapIntensityTransition() const { - return impl().paint.template get().options; +TransitionOptions HeatmapLayer::getHeatmapOpacityTransition() const { + return impl().paint.template get().options; } -ColorRampPropertyValue HeatmapLayer::getDefaultHeatmapColor() { - conversion::Error error; - std::string rawValue = R"JSON(["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"])JSON"; - return *conversion::convertJSON(rawValue, error); +PropertyValue HeatmapLayer::getDefaultHeatmapRadius() { + return { 30 }; } -const ColorRampPropertyValue& HeatmapLayer::getHeatmapColor() const { - return impl().paint.template get().value; +const PropertyValue& HeatmapLayer::getHeatmapRadius() const { + return impl().paint.template get().value; } -void HeatmapLayer::setHeatmapColor(const ColorRampPropertyValue& value) { - if (value == getHeatmapColor()) +void HeatmapLayer::setHeatmapRadius(const PropertyValue& value) { + if (value == getHeatmapRadius()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HeatmapLayer::setHeatmapColorTransition(const TransitionOptions& options) { +void HeatmapLayer::setHeatmapRadiusTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HeatmapLayer::getHeatmapColorTransition() const { - return impl().paint.template get().options; +TransitionOptions HeatmapLayer::getHeatmapRadiusTransition() const { + return impl().paint.template get().options; } -PropertyValue HeatmapLayer::getDefaultHeatmapOpacity() { +PropertyValue HeatmapLayer::getDefaultHeatmapWeight() { return { 1 }; } -const PropertyValue& HeatmapLayer::getHeatmapOpacity() const { - return impl().paint.template get().value; +const PropertyValue& HeatmapLayer::getHeatmapWeight() const { + return impl().paint.template get().value; } -void HeatmapLayer::setHeatmapOpacity(const PropertyValue& value) { - if (value == getHeatmapOpacity()) +void HeatmapLayer::setHeatmapWeight(const PropertyValue& value) { + if (value == getHeatmapWeight()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HeatmapLayer::setHeatmapOpacityTransition(const TransitionOptions& options) { +void HeatmapLayer::setHeatmapWeightTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HeatmapLayer::getHeatmapOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions HeatmapLayer::getHeatmapWeightTransition() const { + return impl().paint.template get().options; } using namespace conversion; optional HeatmapLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - HeatmapRadius, - HeatmapWeight, - HeatmapIntensity, HeatmapColor, + HeatmapIntensity, HeatmapOpacity, - HeatmapRadiusTransition, - HeatmapWeightTransition, - HeatmapIntensityTransition, + HeatmapRadius, + HeatmapWeight, HeatmapColorTransition, + HeatmapIntensityTransition, HeatmapOpacityTransition, + HeatmapRadiusTransition, + HeatmapWeightTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "heatmap-radius", static_cast(Property::HeatmapRadius) }, - { "heatmap-weight", static_cast(Property::HeatmapWeight) }, - { "heatmap-intensity", static_cast(Property::HeatmapIntensity) }, { "heatmap-color", static_cast(Property::HeatmapColor) }, + { "heatmap-intensity", static_cast(Property::HeatmapIntensity) }, { "heatmap-opacity", static_cast(Property::HeatmapOpacity) }, - { "heatmap-radius-transition", static_cast(Property::HeatmapRadiusTransition) }, - { "heatmap-weight-transition", static_cast(Property::HeatmapWeightTransition) }, - { "heatmap-intensity-transition", static_cast(Property::HeatmapIntensityTransition) }, + { "heatmap-radius", static_cast(Property::HeatmapRadius) }, + { "heatmap-weight", static_cast(Property::HeatmapWeight) }, { "heatmap-color-transition", static_cast(Property::HeatmapColorTransition) }, - { "heatmap-opacity-transition", static_cast(Property::HeatmapOpacityTransition) } + { "heatmap-intensity-transition", static_cast(Property::HeatmapIntensityTransition) }, + { "heatmap-opacity-transition", static_cast(Property::HeatmapOpacityTransition) }, + { "heatmap-radius-transition", static_cast(Property::HeatmapRadiusTransition) }, + { "heatmap-weight-transition", static_cast(Property::HeatmapWeightTransition) } }); const auto it = properties.find(name.c_str()); @@ -237,22 +237,15 @@ optional HeatmapLayer::setPaintProperty(const std::string& name, const Co auto property = static_cast(it->second); - if (property == Property::HeatmapRadius || property == Property::HeatmapWeight) { + if (property == Property::HeatmapColor) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional typedValue = convert(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::HeatmapRadius) { - setHeatmapRadius(*typedValue); - return nullopt; - } - - if (property == Property::HeatmapWeight) { - setHeatmapWeight(*typedValue); - return nullopt; - } + setHeatmapColor(*typedValue); + return nullopt; } @@ -275,15 +268,22 @@ optional HeatmapLayer::setPaintProperty(const std::string& name, const Co } - if (property == Property::HeatmapColor) { + if (property == Property::HeatmapRadius || property == Property::HeatmapWeight) { Error error; - optional typedValue = convert(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - setHeatmapColor(*typedValue); - return nullopt; + if (property == Property::HeatmapRadius) { + setHeatmapRadius(*typedValue); + return nullopt; + } + + if (property == Property::HeatmapWeight) { + setHeatmapWeight(*typedValue); + return nullopt; + } } @@ -294,28 +294,28 @@ optional HeatmapLayer::setPaintProperty(const std::string& name, const Co return error; } - if (property == Property::HeatmapRadiusTransition) { - setHeatmapRadiusTransition(*transition); + if (property == Property::HeatmapColorTransition) { + setHeatmapColorTransition(*transition); return nullopt; } - if (property == Property::HeatmapWeightTransition) { - setHeatmapWeightTransition(*transition); + if (property == Property::HeatmapIntensityTransition) { + setHeatmapIntensityTransition(*transition); return nullopt; } - if (property == Property::HeatmapIntensityTransition) { - setHeatmapIntensityTransition(*transition); + if (property == Property::HeatmapOpacityTransition) { + setHeatmapOpacityTransition(*transition); return nullopt; } - if (property == Property::HeatmapColorTransition) { - setHeatmapColorTransition(*transition); + if (property == Property::HeatmapRadiusTransition) { + setHeatmapRadiusTransition(*transition); return nullopt; } - if (property == Property::HeatmapOpacityTransition) { - setHeatmapOpacityTransition(*transition); + if (property == Property::HeatmapWeightTransition) { + setHeatmapWeightTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/heatmap_layer_properties.hpp b/src/mbgl/style/layers/heatmap_layer_properties.hpp index cccff61449..dda9808e77 100644 --- a/src/mbgl/style/layers/heatmap_layer_properties.hpp +++ b/src/mbgl/style/layers/heatmap_layer_properties.hpp @@ -14,31 +14,31 @@ namespace mbgl { namespace style { -struct HeatmapRadius : DataDrivenPaintProperty { - static float defaultValue() { return 30; } +struct HeatmapColor : ColorRampProperty { }; -struct HeatmapWeight : DataDrivenPaintProperty { +struct HeatmapIntensity : PaintProperty { static float defaultValue() { return 1; } }; -struct HeatmapIntensity : PaintProperty { +struct HeatmapOpacity : PaintProperty { static float defaultValue() { return 1; } }; -struct HeatmapColor : ColorRampProperty { +struct HeatmapRadius : DataDrivenPaintProperty { + static float defaultValue() { return 30; } }; -struct HeatmapOpacity : PaintProperty { +struct HeatmapWeight : DataDrivenPaintProperty { static float defaultValue() { return 1; } }; class HeatmapPaintProperties : public Properties< - HeatmapRadius, - HeatmapWeight, - HeatmapIntensity, HeatmapColor, - HeatmapOpacity + HeatmapIntensity, + HeatmapOpacity, + HeatmapRadius, + HeatmapWeight > {}; class HeatmapLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/hillshade_layer.cpp b/src/mbgl/style/layers/hillshade_layer.cpp index dacd639f52..558022eea8 100644 --- a/src/mbgl/style/layers/hillshade_layer.cpp +++ b/src/mbgl/style/layers/hillshade_layer.cpp @@ -63,199 +63,199 @@ void HillshadeLayer::Impl::stringifyLayout(rapidjson::Writer HillshadeLayer::getDefaultHillshadeIlluminationDirection() { - return { 335 }; +PropertyValue HillshadeLayer::getDefaultHillshadeAccentColor() { + return { Color::black() }; } -const PropertyValue& HillshadeLayer::getHillshadeIlluminationDirection() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeAccentColor() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeIlluminationDirection(const PropertyValue& value) { - if (value == getHillshadeIlluminationDirection()) +void HillshadeLayer::setHillshadeAccentColor(const PropertyValue& value) { + if (value == getHillshadeAccentColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeIlluminationDirectionTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeAccentColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeIlluminationDirectionTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const { + return impl().paint.template get().options; } -PropertyValue HillshadeLayer::getDefaultHillshadeIlluminationAnchor() { - return { HillshadeIlluminationAnchorType::Viewport }; +PropertyValue HillshadeLayer::getDefaultHillshadeExaggeration() { + return { 0.5 }; } -const PropertyValue& HillshadeLayer::getHillshadeIlluminationAnchor() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeExaggeration() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeIlluminationAnchor(const PropertyValue& value) { - if (value == getHillshadeIlluminationAnchor()) +void HillshadeLayer::setHillshadeExaggeration(const PropertyValue& value) { + if (value == getHillshadeExaggeration()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeIlluminationAnchorTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeExaggerationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeIlluminationAnchorTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeExaggerationTransition() const { + return impl().paint.template get().options; } -PropertyValue HillshadeLayer::getDefaultHillshadeExaggeration() { - return { 0.5 }; +PropertyValue HillshadeLayer::getDefaultHillshadeHighlightColor() { + return { Color::white() }; } -const PropertyValue& HillshadeLayer::getHillshadeExaggeration() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeHighlightColor() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeExaggeration(const PropertyValue& value) { - if (value == getHillshadeExaggeration()) +void HillshadeLayer::setHillshadeHighlightColor(const PropertyValue& value) { + if (value == getHillshadeHighlightColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeExaggerationTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeHighlightColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeExaggerationTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeHighlightColorTransition() const { + return impl().paint.template get().options; } -PropertyValue HillshadeLayer::getDefaultHillshadeShadowColor() { - return { Color::black() }; +PropertyValue HillshadeLayer::getDefaultHillshadeIlluminationAnchor() { + return { HillshadeIlluminationAnchorType::Viewport }; } -const PropertyValue& HillshadeLayer::getHillshadeShadowColor() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeIlluminationAnchor() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeShadowColor(const PropertyValue& value) { - if (value == getHillshadeShadowColor()) +void HillshadeLayer::setHillshadeIlluminationAnchor(const PropertyValue& value) { + if (value == getHillshadeIlluminationAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeShadowColorTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeIlluminationAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeShadowColorTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeIlluminationAnchorTransition() const { + return impl().paint.template get().options; } -PropertyValue HillshadeLayer::getDefaultHillshadeHighlightColor() { - return { Color::white() }; +PropertyValue HillshadeLayer::getDefaultHillshadeIlluminationDirection() { + return { 335 }; } -const PropertyValue& HillshadeLayer::getHillshadeHighlightColor() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeIlluminationDirection() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeHighlightColor(const PropertyValue& value) { - if (value == getHillshadeHighlightColor()) +void HillshadeLayer::setHillshadeIlluminationDirection(const PropertyValue& value) { + if (value == getHillshadeIlluminationDirection()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeHighlightColorTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeIlluminationDirectionTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeHighlightColorTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeIlluminationDirectionTransition() const { + return impl().paint.template get().options; } -PropertyValue HillshadeLayer::getDefaultHillshadeAccentColor() { +PropertyValue HillshadeLayer::getDefaultHillshadeShadowColor() { return { Color::black() }; } -const PropertyValue& HillshadeLayer::getHillshadeAccentColor() const { - return impl().paint.template get().value; +const PropertyValue& HillshadeLayer::getHillshadeShadowColor() const { + return impl().paint.template get().value; } -void HillshadeLayer::setHillshadeAccentColor(const PropertyValue& value) { - if (value == getHillshadeAccentColor()) +void HillshadeLayer::setHillshadeShadowColor(const PropertyValue& value) { + if (value == getHillshadeShadowColor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void HillshadeLayer::setHillshadeAccentColorTransition(const TransitionOptions& options) { +void HillshadeLayer::setHillshadeShadowColorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const { - return impl().paint.template get().options; +TransitionOptions HillshadeLayer::getHillshadeShadowColorTransition() const { + return impl().paint.template get().options; } using namespace conversion; optional HillshadeLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - HillshadeIlluminationDirection, - HillshadeIlluminationAnchor, + HillshadeAccentColor, HillshadeExaggeration, - HillshadeShadowColor, HillshadeHighlightColor, - HillshadeAccentColor, - HillshadeIlluminationDirectionTransition, - HillshadeIlluminationAnchorTransition, + HillshadeIlluminationAnchor, + HillshadeIlluminationDirection, + HillshadeShadowColor, + HillshadeAccentColorTransition, HillshadeExaggerationTransition, - HillshadeShadowColorTransition, HillshadeHighlightColorTransition, - HillshadeAccentColorTransition, + HillshadeIlluminationAnchorTransition, + HillshadeIlluminationDirectionTransition, + HillshadeShadowColorTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "hillshade-illumination-direction", static_cast(Property::HillshadeIlluminationDirection) }, - { "hillshade-illumination-anchor", static_cast(Property::HillshadeIlluminationAnchor) }, + { "hillshade-accent-color", static_cast(Property::HillshadeAccentColor) }, { "hillshade-exaggeration", static_cast(Property::HillshadeExaggeration) }, - { "hillshade-shadow-color", static_cast(Property::HillshadeShadowColor) }, { "hillshade-highlight-color", static_cast(Property::HillshadeHighlightColor) }, - { "hillshade-accent-color", static_cast(Property::HillshadeAccentColor) }, - { "hillshade-illumination-direction-transition", static_cast(Property::HillshadeIlluminationDirectionTransition) }, - { "hillshade-illumination-anchor-transition", static_cast(Property::HillshadeIlluminationAnchorTransition) }, + { "hillshade-illumination-anchor", static_cast(Property::HillshadeIlluminationAnchor) }, + { "hillshade-illumination-direction", static_cast(Property::HillshadeIlluminationDirection) }, + { "hillshade-shadow-color", static_cast(Property::HillshadeShadowColor) }, + { "hillshade-accent-color-transition", static_cast(Property::HillshadeAccentColorTransition) }, { "hillshade-exaggeration-transition", static_cast(Property::HillshadeExaggerationTransition) }, - { "hillshade-shadow-color-transition", static_cast(Property::HillshadeShadowColorTransition) }, { "hillshade-highlight-color-transition", static_cast(Property::HillshadeHighlightColorTransition) }, - { "hillshade-accent-color-transition", static_cast(Property::HillshadeAccentColorTransition) } + { "hillshade-illumination-anchor-transition", static_cast(Property::HillshadeIlluminationAnchorTransition) }, + { "hillshade-illumination-direction-transition", static_cast(Property::HillshadeIlluminationDirectionTransition) }, + { "hillshade-shadow-color-transition", static_cast(Property::HillshadeShadowColorTransition) } }); const auto it = properties.find(name.c_str()); @@ -266,59 +266,59 @@ optional HillshadeLayer::setPaintProperty(const std::string& name, const auto property = static_cast(it->second); - if (property == Property::HillshadeIlluminationDirection || property == Property::HillshadeExaggeration) { + if (property == Property::HillshadeAccentColor || property == Property::HillshadeHighlightColor || property == Property::HillshadeShadowColor) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::HillshadeIlluminationDirection) { - setHillshadeIlluminationDirection(*typedValue); + if (property == Property::HillshadeAccentColor) { + setHillshadeAccentColor(*typedValue); return nullopt; } - if (property == Property::HillshadeExaggeration) { - setHillshadeExaggeration(*typedValue); + if (property == Property::HillshadeHighlightColor) { + setHillshadeHighlightColor(*typedValue); return nullopt; } - } - - if (property == Property::HillshadeIlluminationAnchor) { - Error error; - optional> typedValue = convert>(value, error, false, false); - if (!typedValue) { - return error; + if (property == Property::HillshadeShadowColor) { + setHillshadeShadowColor(*typedValue); + return nullopt; } - setHillshadeIlluminationAnchor(*typedValue); - return nullopt; - } - if (property == Property::HillshadeShadowColor || property == Property::HillshadeHighlightColor || property == Property::HillshadeAccentColor) { + if (property == Property::HillshadeExaggeration || property == Property::HillshadeIlluminationDirection) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::HillshadeShadowColor) { - setHillshadeShadowColor(*typedValue); + if (property == Property::HillshadeExaggeration) { + setHillshadeExaggeration(*typedValue); return nullopt; } - if (property == Property::HillshadeHighlightColor) { - setHillshadeHighlightColor(*typedValue); + if (property == Property::HillshadeIlluminationDirection) { + setHillshadeIlluminationDirection(*typedValue); return nullopt; } - if (property == Property::HillshadeAccentColor) { - setHillshadeAccentColor(*typedValue); - return nullopt; + } + + if (property == Property::HillshadeIlluminationAnchor) { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; } + setHillshadeIlluminationAnchor(*typedValue); + return nullopt; + } @@ -328,33 +328,33 @@ optional HillshadeLayer::setPaintProperty(const std::string& name, const return error; } - if (property == Property::HillshadeIlluminationDirectionTransition) { - setHillshadeIlluminationDirectionTransition(*transition); + if (property == Property::HillshadeAccentColorTransition) { + setHillshadeAccentColorTransition(*transition); return nullopt; } - if (property == Property::HillshadeIlluminationAnchorTransition) { - setHillshadeIlluminationAnchorTransition(*transition); + if (property == Property::HillshadeExaggerationTransition) { + setHillshadeExaggerationTransition(*transition); return nullopt; } - if (property == Property::HillshadeExaggerationTransition) { - setHillshadeExaggerationTransition(*transition); + if (property == Property::HillshadeHighlightColorTransition) { + setHillshadeHighlightColorTransition(*transition); return nullopt; } - if (property == Property::HillshadeShadowColorTransition) { - setHillshadeShadowColorTransition(*transition); + if (property == Property::HillshadeIlluminationAnchorTransition) { + setHillshadeIlluminationAnchorTransition(*transition); return nullopt; } - if (property == Property::HillshadeHighlightColorTransition) { - setHillshadeHighlightColorTransition(*transition); + if (property == Property::HillshadeIlluminationDirectionTransition) { + setHillshadeIlluminationDirectionTransition(*transition); return nullopt; } - if (property == Property::HillshadeAccentColorTransition) { - setHillshadeAccentColorTransition(*transition); + if (property == Property::HillshadeShadowColorTransition) { + setHillshadeShadowColorTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/hillshade_layer_properties.hpp b/src/mbgl/style/layers/hillshade_layer_properties.hpp index 6433151148..85ef8b967c 100644 --- a/src/mbgl/style/layers/hillshade_layer_properties.hpp +++ b/src/mbgl/style/layers/hillshade_layer_properties.hpp @@ -14,37 +14,37 @@ namespace mbgl { namespace style { -struct HillshadeIlluminationDirection : PaintProperty { - static float defaultValue() { return 335; } -}; - -struct HillshadeIlluminationAnchor : PaintProperty { - static HillshadeIlluminationAnchorType defaultValue() { return HillshadeIlluminationAnchorType::Viewport; } +struct HillshadeAccentColor : PaintProperty { + static Color defaultValue() { return Color::black(); } }; struct HillshadeExaggeration : PaintProperty { static float defaultValue() { return 0.5; } }; -struct HillshadeShadowColor : PaintProperty { - static Color defaultValue() { return Color::black(); } -}; - struct HillshadeHighlightColor : PaintProperty { static Color defaultValue() { return Color::white(); } }; -struct HillshadeAccentColor : PaintProperty { +struct HillshadeIlluminationAnchor : PaintProperty { + static HillshadeIlluminationAnchorType defaultValue() { return HillshadeIlluminationAnchorType::Viewport; } +}; + +struct HillshadeIlluminationDirection : PaintProperty { + static float defaultValue() { return 335; } +}; + +struct HillshadeShadowColor : PaintProperty { static Color defaultValue() { return Color::black(); } }; class HillshadePaintProperties : public Properties< - HillshadeIlluminationDirection, - HillshadeIlluminationAnchor, + HillshadeAccentColor, HillshadeExaggeration, - HillshadeShadowColor, HillshadeHighlightColor, - HillshadeAccentColor + HillshadeIlluminationAnchor, + HillshadeIlluminationDirection, + HillshadeShadowColor > {}; class HillshadeLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/line_layer.cpp b/src/mbgl/style/layers/line_layer.cpp index d50ae27098..0a6f0824f4 100644 --- a/src/mbgl/style/layers/line_layer.cpp +++ b/src/mbgl/style/layers/line_layer.cpp @@ -128,31 +128,31 @@ void LineLayer::setLineRoundLimit(const PropertyValue& value) { // Paint properties -PropertyValue LineLayer::getDefaultLineOpacity() { - return { 1 }; +PropertyValue LineLayer::getDefaultLineBlur() { + return { 0 }; } -const PropertyValue& LineLayer::getLineOpacity() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineBlur() const { + return impl().paint.template get().value; } -void LineLayer::setLineOpacity(const PropertyValue& value) { - if (value == getLineOpacity()) +void LineLayer::setLineBlur(const PropertyValue& value) { + if (value == getLineBlur()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineOpacityTransition(const TransitionOptions& options) { +void LineLayer::setLineBlurTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineBlurTransition() const { + return impl().paint.template get().options; } PropertyValue LineLayer::getDefaultLineColor() { @@ -182,301 +182,301 @@ TransitionOptions LineLayer::getLineColorTransition() const { return impl().paint.template get().options; } -PropertyValue> LineLayer::getDefaultLineTranslate() { - return { {{ 0, 0 }} }; +PropertyValue> LineLayer::getDefaultLineDasharray() { + return { { } }; } -const PropertyValue>& LineLayer::getLineTranslate() const { - return impl().paint.template get().value; +const PropertyValue>& LineLayer::getLineDasharray() const { + return impl().paint.template get().value; } -void LineLayer::setLineTranslate(const PropertyValue>& value) { - if (value == getLineTranslate()) +void LineLayer::setLineDasharray(const PropertyValue>& value) { + if (value == getLineDasharray()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineTranslateTransition(const TransitionOptions& options) { +void LineLayer::setLineDasharrayTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineTranslateTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineDasharrayTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLineTranslateAnchor() { - return { TranslateAnchorType::Map }; +PropertyValue LineLayer::getDefaultLineGapWidth() { + return { 0 }; } -const PropertyValue& LineLayer::getLineTranslateAnchor() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineGapWidth() const { + return impl().paint.template get().value; } -void LineLayer::setLineTranslateAnchor(const PropertyValue& value) { - if (value == getLineTranslateAnchor()) +void LineLayer::setLineGapWidth(const PropertyValue& value) { + if (value == getLineGapWidth()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineTranslateAnchorTransition(const TransitionOptions& options) { +void LineLayer::setLineGapWidthTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineTranslateAnchorTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineGapWidthTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLineWidth() { - return { 1 }; +ColorRampPropertyValue LineLayer::getDefaultLineGradient() { + return { {} }; } -const PropertyValue& LineLayer::getLineWidth() const { - return impl().paint.template get().value; +const ColorRampPropertyValue& LineLayer::getLineGradient() const { + return impl().paint.template get().value; } -void LineLayer::setLineWidth(const PropertyValue& value) { - if (value == getLineWidth()) +void LineLayer::setLineGradient(const ColorRampPropertyValue& value) { + if (value == getLineGradient()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineWidthTransition(const TransitionOptions& options) { +void LineLayer::setLineGradientTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineWidthTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineGradientTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLineGapWidth() { +PropertyValue LineLayer::getDefaultLineOffset() { return { 0 }; } -const PropertyValue& LineLayer::getLineGapWidth() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineOffset() const { + return impl().paint.template get().value; } -void LineLayer::setLineGapWidth(const PropertyValue& value) { - if (value == getLineGapWidth()) +void LineLayer::setLineOffset(const PropertyValue& value) { + if (value == getLineOffset()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineGapWidthTransition(const TransitionOptions& options) { +void LineLayer::setLineOffsetTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineGapWidthTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineOffsetTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLineOffset() { - return { 0 }; +PropertyValue LineLayer::getDefaultLineOpacity() { + return { 1 }; } -const PropertyValue& LineLayer::getLineOffset() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineOpacity() const { + return impl().paint.template get().value; } -void LineLayer::setLineOffset(const PropertyValue& value) { - if (value == getLineOffset()) +void LineLayer::setLineOpacity(const PropertyValue& value) { + if (value == getLineOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineOffsetTransition(const TransitionOptions& options) { +void LineLayer::setLineOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineOffsetTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineOpacityTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLineBlur() { - return { 0 }; +PropertyValue LineLayer::getDefaultLinePattern() { + return { "" }; } -const PropertyValue& LineLayer::getLineBlur() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLinePattern() const { + return impl().paint.template get().value; } -void LineLayer::setLineBlur(const PropertyValue& value) { - if (value == getLineBlur()) +void LineLayer::setLinePattern(const PropertyValue& value) { + if (value == getLinePattern()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineBlurTransition(const TransitionOptions& options) { +void LineLayer::setLinePatternTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineBlurTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLinePatternTransition() const { + return impl().paint.template get().options; } -PropertyValue> LineLayer::getDefaultLineDasharray() { - return { { } }; +PropertyValue> LineLayer::getDefaultLineTranslate() { + return { {{ 0, 0 }} }; } -const PropertyValue>& LineLayer::getLineDasharray() const { - return impl().paint.template get().value; +const PropertyValue>& LineLayer::getLineTranslate() const { + return impl().paint.template get().value; } -void LineLayer::setLineDasharray(const PropertyValue>& value) { - if (value == getLineDasharray()) +void LineLayer::setLineTranslate(const PropertyValue>& value) { + if (value == getLineTranslate()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineDasharrayTransition(const TransitionOptions& options) { +void LineLayer::setLineTranslateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineDasharrayTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineTranslateTransition() const { + return impl().paint.template get().options; } -PropertyValue LineLayer::getDefaultLinePattern() { - return { "" }; +PropertyValue LineLayer::getDefaultLineTranslateAnchor() { + return { TranslateAnchorType::Map }; } -const PropertyValue& LineLayer::getLinePattern() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineTranslateAnchor() const { + return impl().paint.template get().value; } -void LineLayer::setLinePattern(const PropertyValue& value) { - if (value == getLinePattern()) +void LineLayer::setLineTranslateAnchor(const PropertyValue& value) { + if (value == getLineTranslateAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLinePatternTransition(const TransitionOptions& options) { +void LineLayer::setLineTranslateAnchorTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLinePatternTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineTranslateAnchorTransition() const { + return impl().paint.template get().options; } -ColorRampPropertyValue LineLayer::getDefaultLineGradient() { - return { {} }; +PropertyValue LineLayer::getDefaultLineWidth() { + return { 1 }; } -const ColorRampPropertyValue& LineLayer::getLineGradient() const { - return impl().paint.template get().value; +const PropertyValue& LineLayer::getLineWidth() const { + return impl().paint.template get().value; } -void LineLayer::setLineGradient(const ColorRampPropertyValue& value) { - if (value == getLineGradient()) +void LineLayer::setLineWidth(const PropertyValue& value) { + if (value == getLineWidth()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void LineLayer::setLineGradientTransition(const TransitionOptions& options) { +void LineLayer::setLineWidthTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions LineLayer::getLineGradientTransition() const { - return impl().paint.template get().options; +TransitionOptions LineLayer::getLineWidthTransition() const { + return impl().paint.template get().options; } using namespace conversion; optional LineLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - LineOpacity, + LineBlur, LineColor, - LineTranslate, - LineTranslateAnchor, - LineWidth, + LineDasharray, LineGapWidth, + LineGradient, LineOffset, - LineBlur, - LineDasharray, + LineOpacity, LinePattern, - LineGradient, - LineOpacityTransition, + LineTranslate, + LineTranslateAnchor, + LineWidth, + LineBlurTransition, LineColorTransition, - LineTranslateTransition, - LineTranslateAnchorTransition, - LineWidthTransition, + LineDasharrayTransition, LineGapWidthTransition, + LineGradientTransition, LineOffsetTransition, - LineBlurTransition, - LineDasharrayTransition, + LineOpacityTransition, LinePatternTransition, - LineGradientTransition, + LineTranslateTransition, + LineTranslateAnchorTransition, + LineWidthTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "line-opacity", static_cast(Property::LineOpacity) }, + { "line-blur", static_cast(Property::LineBlur) }, { "line-color", static_cast(Property::LineColor) }, - { "line-translate", static_cast(Property::LineTranslate) }, - { "line-translate-anchor", static_cast(Property::LineTranslateAnchor) }, - { "line-width", static_cast(Property::LineWidth) }, + { "line-dasharray", static_cast(Property::LineDasharray) }, { "line-gap-width", static_cast(Property::LineGapWidth) }, + { "line-gradient", static_cast(Property::LineGradient) }, { "line-offset", static_cast(Property::LineOffset) }, - { "line-blur", static_cast(Property::LineBlur) }, - { "line-dasharray", static_cast(Property::LineDasharray) }, + { "line-opacity", static_cast(Property::LineOpacity) }, { "line-pattern", static_cast(Property::LinePattern) }, - { "line-gradient", static_cast(Property::LineGradient) }, - { "line-opacity-transition", static_cast(Property::LineOpacityTransition) }, + { "line-translate", static_cast(Property::LineTranslate) }, + { "line-translate-anchor", static_cast(Property::LineTranslateAnchor) }, + { "line-width", static_cast(Property::LineWidth) }, + { "line-blur-transition", static_cast(Property::LineBlurTransition) }, { "line-color-transition", static_cast(Property::LineColorTransition) }, - { "line-translate-transition", static_cast(Property::LineTranslateTransition) }, - { "line-translate-anchor-transition", static_cast(Property::LineTranslateAnchorTransition) }, - { "line-width-transition", static_cast(Property::LineWidthTransition) }, + { "line-dasharray-transition", static_cast(Property::LineDasharrayTransition) }, { "line-gap-width-transition", static_cast(Property::LineGapWidthTransition) }, + { "line-gradient-transition", static_cast(Property::LineGradientTransition) }, { "line-offset-transition", static_cast(Property::LineOffsetTransition) }, - { "line-blur-transition", static_cast(Property::LineBlurTransition) }, - { "line-dasharray-transition", static_cast(Property::LineDasharrayTransition) }, + { "line-opacity-transition", static_cast(Property::LineOpacityTransition) }, { "line-pattern-transition", static_cast(Property::LinePatternTransition) }, - { "line-gradient-transition", static_cast(Property::LineGradientTransition) } + { "line-translate-transition", static_cast(Property::LineTranslateTransition) }, + { "line-translate-anchor-transition", static_cast(Property::LineTranslateAnchorTransition) }, + { "line-width-transition", static_cast(Property::LineWidthTransition) } }); const auto it = properties.find(name.c_str()); @@ -487,20 +487,15 @@ optional LineLayer::setPaintProperty(const std::string& name, const Conve auto property = static_cast(it->second); - if (property == Property::LineOpacity || property == Property::LineWidth || property == Property::LineGapWidth || property == Property::LineOffset || property == Property::LineBlur) { + if (property == Property::LineBlur || property == Property::LineGapWidth || property == Property::LineOffset || property == Property::LineOpacity || property == Property::LineWidth) { Error error; optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::LineOpacity) { - setLineOpacity(*typedValue); - return nullopt; - } - - if (property == Property::LineWidth) { - setLineWidth(*typedValue); + if (property == Property::LineBlur) { + setLineBlur(*typedValue); return nullopt; } @@ -514,8 +509,13 @@ optional LineLayer::setPaintProperty(const std::string& name, const Conve return nullopt; } - if (property == Property::LineBlur) { - setLineBlur(*typedValue); + if (property == Property::LineOpacity) { + setLineOpacity(*typedValue); + return nullopt; + } + + if (property == Property::LineWidth) { + setLineWidth(*typedValue); return nullopt; } @@ -533,62 +533,62 @@ optional LineLayer::setPaintProperty(const std::string& name, const Conve } - if (property == Property::LineTranslate) { + if (property == Property::LineDasharray) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } - setLineTranslate(*typedValue); + setLineDasharray(*typedValue); return nullopt; } - if (property == Property::LineTranslateAnchor) { + if (property == Property::LineGradient) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional typedValue = convert(value, error, false, false); if (!typedValue) { return error; } - setLineTranslateAnchor(*typedValue); + setLineGradient(*typedValue); return nullopt; } - if (property == Property::LineDasharray) { + if (property == Property::LinePattern) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - setLineDasharray(*typedValue); + setLinePattern(*typedValue); return nullopt; } - if (property == Property::LinePattern) { + if (property == Property::LineTranslate) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } - setLinePattern(*typedValue); + setLineTranslate(*typedValue); return nullopt; } - if (property == Property::LineGradient) { + if (property == Property::LineTranslateAnchor) { Error error; - optional typedValue = convert(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setLineGradient(*typedValue); + setLineTranslateAnchor(*typedValue); return nullopt; } @@ -600,8 +600,8 @@ optional LineLayer::setPaintProperty(const std::string& name, const Conve return error; } - if (property == Property::LineOpacityTransition) { - setLineOpacityTransition(*transition); + if (property == Property::LineBlurTransition) { + setLineBlurTransition(*transition); return nullopt; } @@ -610,48 +610,48 @@ optional LineLayer::setPaintProperty(const std::string& name, const Conve return nullopt; } - if (property == Property::LineTranslateTransition) { - setLineTranslateTransition(*transition); + if (property == Property::LineDasharrayTransition) { + setLineDasharrayTransition(*transition); return nullopt; } - if (property == Property::LineTranslateAnchorTransition) { - setLineTranslateAnchorTransition(*transition); + if (property == Property::LineGapWidthTransition) { + setLineGapWidthTransition(*transition); return nullopt; } - if (property == Property::LineWidthTransition) { - setLineWidthTransition(*transition); + if (property == Property::LineGradientTransition) { + setLineGradientTransition(*transition); return nullopt; } - if (property == Property::LineGapWidthTransition) { - setLineGapWidthTransition(*transition); + if (property == Property::LineOffsetTransition) { + setLineOffsetTransition(*transition); return nullopt; } - if (property == Property::LineOffsetTransition) { - setLineOffsetTransition(*transition); + if (property == Property::LineOpacityTransition) { + setLineOpacityTransition(*transition); return nullopt; } - if (property == Property::LineBlurTransition) { - setLineBlurTransition(*transition); + if (property == Property::LinePatternTransition) { + setLinePatternTransition(*transition); return nullopt; } - if (property == Property::LineDasharrayTransition) { - setLineDasharrayTransition(*transition); + if (property == Property::LineTranslateTransition) { + setLineTranslateTransition(*transition); return nullopt; } - if (property == Property::LinePatternTransition) { - setLinePatternTransition(*transition); + if (property == Property::LineTranslateAnchorTransition) { + setLineTranslateAnchorTransition(*transition); return nullopt; } - if (property == Property::LineGradientTransition) { - setLineGradientTransition(*transition); + if (property == Property::LineWidthTransition) { + setLineWidthTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/line_layer_properties.hpp b/src/mbgl/style/layers/line_layer_properties.hpp index 24a6c13675..7463d94393 100644 --- a/src/mbgl/style/layers/line_layer_properties.hpp +++ b/src/mbgl/style/layers/line_layer_properties.hpp @@ -34,52 +34,52 @@ struct LineRoundLimit : LayoutProperty { static float defaultValue() { return 1; } }; -struct LineOpacity : DataDrivenPaintProperty { - static float defaultValue() { return 1; } +struct LineBlur : DataDrivenPaintProperty { + static float defaultValue() { return 0; } }; struct LineColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } }; -struct LineTranslate : PaintProperty> { - static std::array defaultValue() { return {{ 0, 0 }}; } -}; - -struct LineTranslateAnchor : PaintProperty { - static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } +struct LineDasharray : CrossFadedPaintProperty> { + static std::vector defaultValue() { return { }; } }; -struct LineWidth : DataDrivenPaintProperty { +struct LineFloorWidth : DataDrivenPaintProperty { static float defaultValue() { return 1; } + using EvaluatorType = DataDrivenPropertyEvaluator; }; struct LineGapWidth : DataDrivenPaintProperty { static float defaultValue() { return 0; } }; -struct LineOffset : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct LineGradient : ColorRampProperty { }; -struct LineBlur : DataDrivenPaintProperty { +struct LineOffset : DataDrivenPaintProperty { static float defaultValue() { return 0; } }; -struct LineDasharray : CrossFadedPaintProperty> { - static std::vector defaultValue() { return { }; } +struct LineOpacity : DataDrivenPaintProperty { + static float defaultValue() { return 1; } }; struct LinePattern : CrossFadedDataDrivenPaintProperty { static std::string defaultValue() { return ""; } }; -struct LineGradient : ColorRampProperty { +struct LineTranslate : PaintProperty> { + static std::array defaultValue() { return {{ 0, 0 }}; } }; -struct LineFloorWidth : DataDrivenPaintProperty { +struct LineTranslateAnchor : PaintProperty { + static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } +}; + +struct LineWidth : DataDrivenPaintProperty { static float defaultValue() { return 1; } - using EvaluatorType = DataDrivenPropertyEvaluator; }; class LineLayoutProperties : public Properties< @@ -90,18 +90,18 @@ class LineLayoutProperties : public Properties< > {}; class LinePaintProperties : public Properties< - LineOpacity, + LineBlur, LineColor, - LineTranslate, - LineTranslateAnchor, - LineWidth, + LineDasharray, + LineFloorWidth, LineGapWidth, + LineGradient, LineOffset, - LineBlur, - LineDasharray, + LineOpacity, LinePattern, - LineGradient, - LineFloorWidth + LineTranslate, + LineTranslateAnchor, + LineWidth > {}; class LineLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/raster_layer.cpp b/src/mbgl/style/layers/raster_layer.cpp index 784b720c68..b364870cff 100644 --- a/src/mbgl/style/layers/raster_layer.cpp +++ b/src/mbgl/style/layers/raster_layer.cpp @@ -63,166 +63,166 @@ void RasterLayer::Impl::stringifyLayout(rapidjson::Writer RasterLayer::getDefaultRasterOpacity() { +PropertyValue RasterLayer::getDefaultRasterBrightnessMax() { return { 1 }; } -const PropertyValue& RasterLayer::getRasterOpacity() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterBrightnessMax() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterOpacity(const PropertyValue& value) { - if (value == getRasterOpacity()) +void RasterLayer::setRasterBrightnessMax(const PropertyValue& value) { + if (value == getRasterBrightnessMax()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterOpacityTransition(const TransitionOptions& options) { +void RasterLayer::setRasterBrightnessMaxTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterOpacityTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterBrightnessMaxTransition() const { + return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterHueRotate() { +PropertyValue RasterLayer::getDefaultRasterBrightnessMin() { return { 0 }; } -const PropertyValue& RasterLayer::getRasterHueRotate() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterBrightnessMin() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterHueRotate(const PropertyValue& value) { - if (value == getRasterHueRotate()) +void RasterLayer::setRasterBrightnessMin(const PropertyValue& value) { + if (value == getRasterBrightnessMin()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterHueRotateTransition(const TransitionOptions& options) { +void RasterLayer::setRasterBrightnessMinTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterHueRotateTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterBrightnessMinTransition() const { + return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterBrightnessMin() { +PropertyValue RasterLayer::getDefaultRasterContrast() { return { 0 }; } -const PropertyValue& RasterLayer::getRasterBrightnessMin() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterContrast() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterBrightnessMin(const PropertyValue& value) { - if (value == getRasterBrightnessMin()) +void RasterLayer::setRasterContrast(const PropertyValue& value) { + if (value == getRasterContrast()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterBrightnessMinTransition(const TransitionOptions& options) { +void RasterLayer::setRasterContrastTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterBrightnessMinTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterContrastTransition() const { + return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterBrightnessMax() { - return { 1 }; +PropertyValue RasterLayer::getDefaultRasterFadeDuration() { + return { 300 }; } -const PropertyValue& RasterLayer::getRasterBrightnessMax() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterFadeDuration() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterBrightnessMax(const PropertyValue& value) { - if (value == getRasterBrightnessMax()) +void RasterLayer::setRasterFadeDuration(const PropertyValue& value) { + if (value == getRasterFadeDuration()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterBrightnessMaxTransition(const TransitionOptions& options) { +void RasterLayer::setRasterFadeDurationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterBrightnessMaxTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterFadeDurationTransition() const { + return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterSaturation() { +PropertyValue RasterLayer::getDefaultRasterHueRotate() { return { 0 }; } -const PropertyValue& RasterLayer::getRasterSaturation() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterHueRotate() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterSaturation(const PropertyValue& value) { - if (value == getRasterSaturation()) +void RasterLayer::setRasterHueRotate(const PropertyValue& value) { + if (value == getRasterHueRotate()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterSaturationTransition(const TransitionOptions& options) { +void RasterLayer::setRasterHueRotateTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterSaturationTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterHueRotateTransition() const { + return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterContrast() { - return { 0 }; +PropertyValue RasterLayer::getDefaultRasterOpacity() { + return { 1 }; } -const PropertyValue& RasterLayer::getRasterContrast() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterOpacity() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterContrast(const PropertyValue& value) { - if (value == getRasterContrast()) +void RasterLayer::setRasterOpacity(const PropertyValue& value) { + if (value == getRasterOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterContrastTransition(const TransitionOptions& options) { +void RasterLayer::setRasterOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterContrastTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue RasterLayer::getDefaultRasterResampling() { @@ -252,72 +252,72 @@ TransitionOptions RasterLayer::getRasterResamplingTransition() const { return impl().paint.template get().options; } -PropertyValue RasterLayer::getDefaultRasterFadeDuration() { - return { 300 }; +PropertyValue RasterLayer::getDefaultRasterSaturation() { + return { 0 }; } -const PropertyValue& RasterLayer::getRasterFadeDuration() const { - return impl().paint.template get().value; +const PropertyValue& RasterLayer::getRasterSaturation() const { + return impl().paint.template get().value; } -void RasterLayer::setRasterFadeDuration(const PropertyValue& value) { - if (value == getRasterFadeDuration()) +void RasterLayer::setRasterSaturation(const PropertyValue& value) { + if (value == getRasterSaturation()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void RasterLayer::setRasterFadeDurationTransition(const TransitionOptions& options) { +void RasterLayer::setRasterSaturationTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions RasterLayer::getRasterFadeDurationTransition() const { - return impl().paint.template get().options; +TransitionOptions RasterLayer::getRasterSaturationTransition() const { + return impl().paint.template get().options; } using namespace conversion; optional RasterLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - RasterOpacity, - RasterHueRotate, - RasterBrightnessMin, RasterBrightnessMax, - RasterSaturation, + RasterBrightnessMin, RasterContrast, - RasterResampling, RasterFadeDuration, - RasterOpacityTransition, - RasterHueRotateTransition, - RasterBrightnessMinTransition, + RasterHueRotate, + RasterOpacity, + RasterResampling, + RasterSaturation, RasterBrightnessMaxTransition, - RasterSaturationTransition, + RasterBrightnessMinTransition, RasterContrastTransition, - RasterResamplingTransition, RasterFadeDurationTransition, + RasterHueRotateTransition, + RasterOpacityTransition, + RasterResamplingTransition, + RasterSaturationTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "raster-opacity", static_cast(Property::RasterOpacity) }, - { "raster-hue-rotate", static_cast(Property::RasterHueRotate) }, - { "raster-brightness-min", static_cast(Property::RasterBrightnessMin) }, { "raster-brightness-max", static_cast(Property::RasterBrightnessMax) }, - { "raster-saturation", static_cast(Property::RasterSaturation) }, + { "raster-brightness-min", static_cast(Property::RasterBrightnessMin) }, { "raster-contrast", static_cast(Property::RasterContrast) }, - { "raster-resampling", static_cast(Property::RasterResampling) }, { "raster-fade-duration", static_cast(Property::RasterFadeDuration) }, - { "raster-opacity-transition", static_cast(Property::RasterOpacityTransition) }, - { "raster-hue-rotate-transition", static_cast(Property::RasterHueRotateTransition) }, - { "raster-brightness-min-transition", static_cast(Property::RasterBrightnessMinTransition) }, + { "raster-hue-rotate", static_cast(Property::RasterHueRotate) }, + { "raster-opacity", static_cast(Property::RasterOpacity) }, + { "raster-resampling", static_cast(Property::RasterResampling) }, + { "raster-saturation", static_cast(Property::RasterSaturation) }, { "raster-brightness-max-transition", static_cast(Property::RasterBrightnessMaxTransition) }, - { "raster-saturation-transition", static_cast(Property::RasterSaturationTransition) }, + { "raster-brightness-min-transition", static_cast(Property::RasterBrightnessMinTransition) }, { "raster-contrast-transition", static_cast(Property::RasterContrastTransition) }, + { "raster-fade-duration-transition", static_cast(Property::RasterFadeDurationTransition) }, + { "raster-hue-rotate-transition", static_cast(Property::RasterHueRotateTransition) }, + { "raster-opacity-transition", static_cast(Property::RasterOpacityTransition) }, { "raster-resampling-transition", static_cast(Property::RasterResamplingTransition) }, - { "raster-fade-duration-transition", static_cast(Property::RasterFadeDurationTransition) } + { "raster-saturation-transition", static_cast(Property::RasterSaturationTransition) } }); const auto it = properties.find(name.c_str()); @@ -328,45 +328,45 @@ optional RasterLayer::setPaintProperty(const std::string& name, const Con auto property = static_cast(it->second); - if (property == Property::RasterOpacity || property == Property::RasterHueRotate || property == Property::RasterBrightnessMin || property == Property::RasterBrightnessMax || property == Property::RasterSaturation || property == Property::RasterContrast || property == Property::RasterFadeDuration) { + if (property == Property::RasterBrightnessMax || property == Property::RasterBrightnessMin || property == Property::RasterContrast || property == Property::RasterFadeDuration || property == Property::RasterHueRotate || property == Property::RasterOpacity || property == Property::RasterSaturation) { Error error; optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::RasterOpacity) { - setRasterOpacity(*typedValue); + if (property == Property::RasterBrightnessMax) { + setRasterBrightnessMax(*typedValue); return nullopt; } - if (property == Property::RasterHueRotate) { - setRasterHueRotate(*typedValue); + if (property == Property::RasterBrightnessMin) { + setRasterBrightnessMin(*typedValue); return nullopt; } - if (property == Property::RasterBrightnessMin) { - setRasterBrightnessMin(*typedValue); + if (property == Property::RasterContrast) { + setRasterContrast(*typedValue); return nullopt; } - if (property == Property::RasterBrightnessMax) { - setRasterBrightnessMax(*typedValue); + if (property == Property::RasterFadeDuration) { + setRasterFadeDuration(*typedValue); return nullopt; } - if (property == Property::RasterSaturation) { - setRasterSaturation(*typedValue); + if (property == Property::RasterHueRotate) { + setRasterHueRotate(*typedValue); return nullopt; } - if (property == Property::RasterContrast) { - setRasterContrast(*typedValue); + if (property == Property::RasterOpacity) { + setRasterOpacity(*typedValue); return nullopt; } - if (property == Property::RasterFadeDuration) { - setRasterFadeDuration(*typedValue); + if (property == Property::RasterSaturation) { + setRasterSaturation(*typedValue); return nullopt; } @@ -391,33 +391,33 @@ optional RasterLayer::setPaintProperty(const std::string& name, const Con return error; } - if (property == Property::RasterOpacityTransition) { - setRasterOpacityTransition(*transition); + if (property == Property::RasterBrightnessMaxTransition) { + setRasterBrightnessMaxTransition(*transition); return nullopt; } - if (property == Property::RasterHueRotateTransition) { - setRasterHueRotateTransition(*transition); + if (property == Property::RasterBrightnessMinTransition) { + setRasterBrightnessMinTransition(*transition); return nullopt; } - if (property == Property::RasterBrightnessMinTransition) { - setRasterBrightnessMinTransition(*transition); + if (property == Property::RasterContrastTransition) { + setRasterContrastTransition(*transition); return nullopt; } - if (property == Property::RasterBrightnessMaxTransition) { - setRasterBrightnessMaxTransition(*transition); + if (property == Property::RasterFadeDurationTransition) { + setRasterFadeDurationTransition(*transition); return nullopt; } - if (property == Property::RasterSaturationTransition) { - setRasterSaturationTransition(*transition); + if (property == Property::RasterHueRotateTransition) { + setRasterHueRotateTransition(*transition); return nullopt; } - if (property == Property::RasterContrastTransition) { - setRasterContrastTransition(*transition); + if (property == Property::RasterOpacityTransition) { + setRasterOpacityTransition(*transition); return nullopt; } @@ -426,8 +426,8 @@ optional RasterLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::RasterFadeDurationTransition) { - setRasterFadeDurationTransition(*transition); + if (property == Property::RasterSaturationTransition) { + setRasterSaturationTransition(*transition); return nullopt; } diff --git a/src/mbgl/style/layers/raster_layer_properties.hpp b/src/mbgl/style/layers/raster_layer_properties.hpp index c380ea471d..61aa32de2d 100644 --- a/src/mbgl/style/layers/raster_layer_properties.hpp +++ b/src/mbgl/style/layers/raster_layer_properties.hpp @@ -14,47 +14,47 @@ namespace mbgl { namespace style { -struct RasterOpacity : PaintProperty { +struct RasterBrightnessMax : PaintProperty { static float defaultValue() { return 1; } }; -struct RasterHueRotate : PaintProperty { +struct RasterBrightnessMin : PaintProperty { static float defaultValue() { return 0; } }; -struct RasterBrightnessMin : PaintProperty { +struct RasterContrast : PaintProperty { static float defaultValue() { return 0; } }; -struct RasterBrightnessMax : PaintProperty { - static float defaultValue() { return 1; } +struct RasterFadeDuration : PaintProperty { + static float defaultValue() { return 300; } }; -struct RasterSaturation : PaintProperty { +struct RasterHueRotate : PaintProperty { static float defaultValue() { return 0; } }; -struct RasterContrast : PaintProperty { - static float defaultValue() { return 0; } +struct RasterOpacity : PaintProperty { + static float defaultValue() { return 1; } }; struct RasterResampling : PaintProperty { static RasterResamplingType defaultValue() { return RasterResamplingType::Linear; } }; -struct RasterFadeDuration : PaintProperty { - static float defaultValue() { return 300; } +struct RasterSaturation : PaintProperty { + static float defaultValue() { return 0; } }; class RasterPaintProperties : public Properties< - RasterOpacity, - RasterHueRotate, - RasterBrightnessMin, RasterBrightnessMax, - RasterSaturation, + RasterBrightnessMin, RasterContrast, + RasterFadeDuration, + RasterHueRotate, + RasterOpacity, RasterResampling, - RasterFadeDuration + RasterSaturation > {}; class RasterLayerProperties final : public LayerProperties { diff --git a/src/mbgl/style/layers/symbol_layer.cpp b/src/mbgl/style/layers/symbol_layer.cpp index 0567c224bd..1740e5bb2e 100644 --- a/src/mbgl/style/layers/symbol_layer.cpp +++ b/src/mbgl/style/layers/symbol_layer.cpp @@ -61,131 +61,163 @@ void SymbolLayer::Impl::stringifyLayout(rapidjson::Writer SymbolLayer::getDefaultSymbolPlacement() { - return SymbolPlacement::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconAllowOverlap() { + return IconAllowOverlap::defaultValue(); } -const PropertyValue& SymbolLayer::getSymbolPlacement() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconAllowOverlap() const { + return impl().layout.get(); } -void SymbolLayer::setSymbolPlacement(const PropertyValue& value) { - if (value == getSymbolPlacement()) +void SymbolLayer::setIconAllowOverlap(const PropertyValue& value) { + if (value == getIconAllowOverlap()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultSymbolSpacing() { - return SymbolSpacing::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconAnchor() { + return IconAnchor::defaultValue(); } -const PropertyValue& SymbolLayer::getSymbolSpacing() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconAnchor() const { + return impl().layout.get(); } -void SymbolLayer::setSymbolSpacing(const PropertyValue& value) { - if (value == getSymbolSpacing()) +void SymbolLayer::setIconAnchor(const PropertyValue& value) { + if (value == getIconAnchor()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultSymbolAvoidEdges() { - return SymbolAvoidEdges::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconIgnorePlacement() { + return IconIgnorePlacement::defaultValue(); } -const PropertyValue& SymbolLayer::getSymbolAvoidEdges() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconIgnorePlacement() const { + return impl().layout.get(); } -void SymbolLayer::setSymbolAvoidEdges(const PropertyValue& value) { - if (value == getSymbolAvoidEdges()) +void SymbolLayer::setIconIgnorePlacement(const PropertyValue& value) { + if (value == getIconIgnorePlacement()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultSymbolSortKey() { - return SymbolSortKey::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconImage() { + return IconImage::defaultValue(); } -const PropertyValue& SymbolLayer::getSymbolSortKey() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconImage() const { + return impl().layout.get(); } -void SymbolLayer::setSymbolSortKey(const PropertyValue& value) { - if (value == getSymbolSortKey()) +void SymbolLayer::setIconImage(const PropertyValue& value) { + if (value == getIconImage()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultSymbolZOrder() { - return SymbolZOrder::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconKeepUpright() { + return IconKeepUpright::defaultValue(); } -const PropertyValue& SymbolLayer::getSymbolZOrder() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconKeepUpright() const { + return impl().layout.get(); } -void SymbolLayer::setSymbolZOrder(const PropertyValue& value) { - if (value == getSymbolZOrder()) +void SymbolLayer::setIconKeepUpright(const PropertyValue& value) { + if (value == getIconKeepUpright()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconAllowOverlap() { - return IconAllowOverlap::defaultValue(); +PropertyValue> SymbolLayer::getDefaultIconOffset() { + return IconOffset::defaultValue(); } -const PropertyValue& SymbolLayer::getIconAllowOverlap() const { - return impl().layout.get(); +const PropertyValue>& SymbolLayer::getIconOffset() const { + return impl().layout.get(); } -void SymbolLayer::setIconAllowOverlap(const PropertyValue& value) { - if (value == getIconAllowOverlap()) +void SymbolLayer::setIconOffset(const PropertyValue>& value) { + if (value == getIconOffset()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconIgnorePlacement() { - return IconIgnorePlacement::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconOptional() { + return IconOptional::defaultValue(); } -const PropertyValue& SymbolLayer::getIconIgnorePlacement() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconOptional() const { + return impl().layout.get(); } -void SymbolLayer::setIconIgnorePlacement(const PropertyValue& value) { - if (value == getIconIgnorePlacement()) +void SymbolLayer::setIconOptional(const PropertyValue& value) { + if (value == getIconOptional()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconOptional() { - return IconOptional::defaultValue(); +PropertyValue SymbolLayer::getDefaultIconPadding() { + return IconPadding::defaultValue(); } -const PropertyValue& SymbolLayer::getIconOptional() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getIconPadding() const { + return impl().layout.get(); } -void SymbolLayer::setIconOptional(const PropertyValue& value) { - if (value == getIconOptional()) +void SymbolLayer::setIconPadding(const PropertyValue& value) { + if (value == getIconPadding()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} +PropertyValue SymbolLayer::getDefaultIconPitchAlignment() { + return IconPitchAlignment::defaultValue(); +} + +const PropertyValue& SymbolLayer::getIconPitchAlignment() const { + return impl().layout.get(); +} + +void SymbolLayer::setIconPitchAlignment(const PropertyValue& value) { + if (value == getIconPitchAlignment()) + return; + auto impl_ = mutableImpl(); + impl_->layout.get() = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} +PropertyValue SymbolLayer::getDefaultIconRotate() { + return IconRotate::defaultValue(); +} + +const PropertyValue& SymbolLayer::getIconRotate() const { + return impl().layout.get(); +} + +void SymbolLayer::setIconRotate(const PropertyValue& value) { + if (value == getIconRotate()) + return; + auto impl_ = mutableImpl(); + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } @@ -253,163 +285,131 @@ void SymbolLayer::setIconTextFitPadding(const PropertyValue baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconImage() { - return IconImage::defaultValue(); +PropertyValue SymbolLayer::getDefaultSymbolAvoidEdges() { + return SymbolAvoidEdges::defaultValue(); } -const PropertyValue& SymbolLayer::getIconImage() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getSymbolAvoidEdges() const { + return impl().layout.get(); } -void SymbolLayer::setIconImage(const PropertyValue& value) { - if (value == getIconImage()) +void SymbolLayer::setSymbolAvoidEdges(const PropertyValue& value) { + if (value == getSymbolAvoidEdges()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconRotate() { - return IconRotate::defaultValue(); +PropertyValue SymbolLayer::getDefaultSymbolPlacement() { + return SymbolPlacement::defaultValue(); } -const PropertyValue& SymbolLayer::getIconRotate() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getSymbolPlacement() const { + return impl().layout.get(); } -void SymbolLayer::setIconRotate(const PropertyValue& value) { - if (value == getIconRotate()) +void SymbolLayer::setSymbolPlacement(const PropertyValue& value) { + if (value == getSymbolPlacement()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconPadding() { - return IconPadding::defaultValue(); +PropertyValue SymbolLayer::getDefaultSymbolSortKey() { + return SymbolSortKey::defaultValue(); } -const PropertyValue& SymbolLayer::getIconPadding() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getSymbolSortKey() const { + return impl().layout.get(); } -void SymbolLayer::setIconPadding(const PropertyValue& value) { - if (value == getIconPadding()) +void SymbolLayer::setSymbolSortKey(const PropertyValue& value) { + if (value == getSymbolSortKey()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconKeepUpright() { - return IconKeepUpright::defaultValue(); +PropertyValue SymbolLayer::getDefaultSymbolSpacing() { + return SymbolSpacing::defaultValue(); } -const PropertyValue& SymbolLayer::getIconKeepUpright() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getSymbolSpacing() const { + return impl().layout.get(); } -void SymbolLayer::setIconKeepUpright(const PropertyValue& value) { - if (value == getIconKeepUpright()) +void SymbolLayer::setSymbolSpacing(const PropertyValue& value) { + if (value == getSymbolSpacing()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue> SymbolLayer::getDefaultIconOffset() { - return IconOffset::defaultValue(); +PropertyValue SymbolLayer::getDefaultSymbolZOrder() { + return SymbolZOrder::defaultValue(); } -const PropertyValue>& SymbolLayer::getIconOffset() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getSymbolZOrder() const { + return impl().layout.get(); } -void SymbolLayer::setIconOffset(const PropertyValue>& value) { - if (value == getIconOffset()) +void SymbolLayer::setSymbolZOrder(const PropertyValue& value) { + if (value == getSymbolZOrder()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconAnchor() { - return IconAnchor::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextAllowOverlap() { + return TextAllowOverlap::defaultValue(); } -const PropertyValue& SymbolLayer::getIconAnchor() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextAllowOverlap() const { + return impl().layout.get(); } -void SymbolLayer::setIconAnchor(const PropertyValue& value) { - if (value == getIconAnchor()) +void SymbolLayer::setTextAllowOverlap(const PropertyValue& value) { + if (value == getTextAllowOverlap()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultIconPitchAlignment() { - return IconPitchAlignment::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextAnchor() { + return TextAnchor::defaultValue(); } -const PropertyValue& SymbolLayer::getIconPitchAlignment() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextAnchor() const { + return impl().layout.get(); } -void SymbolLayer::setIconPitchAlignment(const PropertyValue& value) { - if (value == getIconPitchAlignment()) +void SymbolLayer::setTextAnchor(const PropertyValue& value) { + if (value == getTextAnchor()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextPitchAlignment() { - return TextPitchAlignment::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextField() { + return TextField::defaultValue(); } -const PropertyValue& SymbolLayer::getTextPitchAlignment() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextField() const { + return impl().layout.get(); } -void SymbolLayer::setTextPitchAlignment(const PropertyValue& value) { - if (value == getTextPitchAlignment()) +void SymbolLayer::setTextField(const PropertyValue& value) { + if (value == getTextField()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} -PropertyValue SymbolLayer::getDefaultTextRotationAlignment() { - return TextRotationAlignment::defaultValue(); -} - -const PropertyValue& SymbolLayer::getTextRotationAlignment() const { - return impl().layout.get(); -} - -void SymbolLayer::setTextRotationAlignment(const PropertyValue& value) { - if (value == getTextRotationAlignment()) - return; - auto impl_ = mutableImpl(); - impl_->layout.get() = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} -PropertyValue SymbolLayer::getDefaultTextField() { - return TextField::defaultValue(); -} - -const PropertyValue& SymbolLayer::getTextField() const { - return impl().layout.get(); -} - -void SymbolLayer::setTextField(const PropertyValue& value) { - if (value == getTextField()) - return; - auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } @@ -429,51 +429,51 @@ void SymbolLayer::setTextFont(const PropertyValue>& val baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextSize() { - return TextSize::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextIgnorePlacement() { + return TextIgnorePlacement::defaultValue(); } -const PropertyValue& SymbolLayer::getTextSize() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextIgnorePlacement() const { + return impl().layout.get(); } -void SymbolLayer::setTextSize(const PropertyValue& value) { - if (value == getTextSize()) +void SymbolLayer::setTextIgnorePlacement(const PropertyValue& value) { + if (value == getTextIgnorePlacement()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextMaxWidth() { - return TextMaxWidth::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextJustify() { + return TextJustify::defaultValue(); } -const PropertyValue& SymbolLayer::getTextMaxWidth() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextJustify() const { + return impl().layout.get(); } -void SymbolLayer::setTextMaxWidth(const PropertyValue& value) { - if (value == getTextMaxWidth()) +void SymbolLayer::setTextJustify(const PropertyValue& value) { + if (value == getTextJustify()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextLineHeight() { - return TextLineHeight::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextKeepUpright() { + return TextKeepUpright::defaultValue(); } -const PropertyValue& SymbolLayer::getTextLineHeight() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextKeepUpright() const { + return impl().layout.get(); } -void SymbolLayer::setTextLineHeight(const PropertyValue& value) { - if (value == getTextLineHeight()) +void SymbolLayer::setTextKeepUpright(const PropertyValue& value) { + if (value == getTextKeepUpright()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } @@ -493,99 +493,83 @@ void SymbolLayer::setTextLetterSpacing(const PropertyValue& value) { baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextJustify() { - return TextJustify::defaultValue(); -} - -const PropertyValue& SymbolLayer::getTextJustify() const { - return impl().layout.get(); -} - -void SymbolLayer::setTextJustify(const PropertyValue& value) { - if (value == getTextJustify()) - return; - auto impl_ = mutableImpl(); - impl_->layout.get() = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} -PropertyValue SymbolLayer::getDefaultTextRadialOffset() { - return TextRadialOffset::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextLineHeight() { + return TextLineHeight::defaultValue(); } -const PropertyValue& SymbolLayer::getTextRadialOffset() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextLineHeight() const { + return impl().layout.get(); } -void SymbolLayer::setTextRadialOffset(const PropertyValue& value) { - if (value == getTextRadialOffset()) +void SymbolLayer::setTextLineHeight(const PropertyValue& value) { + if (value == getTextLineHeight()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue> SymbolLayer::getDefaultTextVariableAnchor() { - return TextVariableAnchor::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextMaxAngle() { + return TextMaxAngle::defaultValue(); } -const PropertyValue>& SymbolLayer::getTextVariableAnchor() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextMaxAngle() const { + return impl().layout.get(); } -void SymbolLayer::setTextVariableAnchor(const PropertyValue>& value) { - if (value == getTextVariableAnchor()) +void SymbolLayer::setTextMaxAngle(const PropertyValue& value) { + if (value == getTextMaxAngle()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextAnchor() { - return TextAnchor::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextMaxWidth() { + return TextMaxWidth::defaultValue(); } -const PropertyValue& SymbolLayer::getTextAnchor() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextMaxWidth() const { + return impl().layout.get(); } -void SymbolLayer::setTextAnchor(const PropertyValue& value) { - if (value == getTextAnchor()) +void SymbolLayer::setTextMaxWidth(const PropertyValue& value) { + if (value == getTextMaxWidth()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextMaxAngle() { - return TextMaxAngle::defaultValue(); +PropertyValue> SymbolLayer::getDefaultTextOffset() { + return TextOffset::defaultValue(); } -const PropertyValue& SymbolLayer::getTextMaxAngle() const { - return impl().layout.get(); +const PropertyValue>& SymbolLayer::getTextOffset() const { + return impl().layout.get(); } -void SymbolLayer::setTextMaxAngle(const PropertyValue& value) { - if (value == getTextMaxAngle()) +void SymbolLayer::setTextOffset(const PropertyValue>& value) { + if (value == getTextOffset()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextRotate() { - return TextRotate::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextOptional() { + return TextOptional::defaultValue(); } -const PropertyValue& SymbolLayer::getTextRotate() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextOptional() const { + return impl().layout.get(); } -void SymbolLayer::setTextRotate(const PropertyValue& value) { - if (value == getTextRotate()) +void SymbolLayer::setTextOptional(const PropertyValue& value) { + if (value == getTextOptional()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } @@ -605,131 +589,120 @@ void SymbolLayer::setTextPadding(const PropertyValue& value) { baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextKeepUpright() { - return TextKeepUpright::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextPitchAlignment() { + return TextPitchAlignment::defaultValue(); } -const PropertyValue& SymbolLayer::getTextKeepUpright() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextPitchAlignment() const { + return impl().layout.get(); } -void SymbolLayer::setTextKeepUpright(const PropertyValue& value) { - if (value == getTextKeepUpright()) +void SymbolLayer::setTextPitchAlignment(const PropertyValue& value) { + if (value == getTextPitchAlignment()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextTransform() { - return TextTransform::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextRadialOffset() { + return TextRadialOffset::defaultValue(); } -const PropertyValue& SymbolLayer::getTextTransform() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextRadialOffset() const { + return impl().layout.get(); } -void SymbolLayer::setTextTransform(const PropertyValue& value) { - if (value == getTextTransform()) +void SymbolLayer::setTextRadialOffset(const PropertyValue& value) { + if (value == getTextRadialOffset()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue> SymbolLayer::getDefaultTextOffset() { - return TextOffset::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextRotate() { + return TextRotate::defaultValue(); } -const PropertyValue>& SymbolLayer::getTextOffset() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextRotate() const { + return impl().layout.get(); } -void SymbolLayer::setTextOffset(const PropertyValue>& value) { - if (value == getTextOffset()) +void SymbolLayer::setTextRotate(const PropertyValue& value) { + if (value == getTextRotate()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextAllowOverlap() { - return TextAllowOverlap::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextRotationAlignment() { + return TextRotationAlignment::defaultValue(); } -const PropertyValue& SymbolLayer::getTextAllowOverlap() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextRotationAlignment() const { + return impl().layout.get(); } -void SymbolLayer::setTextAllowOverlap(const PropertyValue& value) { - if (value == getTextAllowOverlap()) +void SymbolLayer::setTextRotationAlignment(const PropertyValue& value) { + if (value == getTextRotationAlignment()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextIgnorePlacement() { - return TextIgnorePlacement::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextSize() { + return TextSize::defaultValue(); } -const PropertyValue& SymbolLayer::getTextIgnorePlacement() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextSize() const { + return impl().layout.get(); } -void SymbolLayer::setTextIgnorePlacement(const PropertyValue& value) { - if (value == getTextIgnorePlacement()) +void SymbolLayer::setTextSize(const PropertyValue& value) { + if (value == getTextSize()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -PropertyValue SymbolLayer::getDefaultTextOptional() { - return TextOptional::defaultValue(); +PropertyValue SymbolLayer::getDefaultTextTransform() { + return TextTransform::defaultValue(); } -const PropertyValue& SymbolLayer::getTextOptional() const { - return impl().layout.get(); +const PropertyValue& SymbolLayer::getTextTransform() const { + return impl().layout.get(); } -void SymbolLayer::setTextOptional(const PropertyValue& value) { - if (value == getTextOptional()) +void SymbolLayer::setTextTransform(const PropertyValue& value) { + if (value == getTextTransform()) return; auto impl_ = mutableImpl(); - impl_->layout.get() = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } - -// Paint properties - -PropertyValue SymbolLayer::getDefaultIconOpacity() { - return { 1 }; +PropertyValue> SymbolLayer::getDefaultTextVariableAnchor() { + return TextVariableAnchor::defaultValue(); } -const PropertyValue& SymbolLayer::getIconOpacity() const { - return impl().paint.template get().value; +const PropertyValue>& SymbolLayer::getTextVariableAnchor() const { + return impl().layout.get(); } -void SymbolLayer::setIconOpacity(const PropertyValue& value) { - if (value == getIconOpacity()) +void SymbolLayer::setTextVariableAnchor(const PropertyValue>& value) { + if (value == getTextVariableAnchor()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->layout.get() = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void SymbolLayer::setIconOpacityTransition(const TransitionOptions& options) { - auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; - baseImpl = std::move(impl_); -} - -TransitionOptions SymbolLayer::getIconOpacityTransition() const { - return impl().paint.template get().options; -} +// Paint properties PropertyValue SymbolLayer::getDefaultIconColor() { return { Color::black() }; @@ -758,6 +731,33 @@ TransitionOptions SymbolLayer::getIconColorTransition() const { return impl().paint.template get().options; } +PropertyValue SymbolLayer::getDefaultIconHaloBlur() { + return { 0 }; +} + +const PropertyValue& SymbolLayer::getIconHaloBlur() const { + return impl().paint.template get().value; +} + +void SymbolLayer::setIconHaloBlur(const PropertyValue& value) { + if (value == getIconHaloBlur()) + return; + auto impl_ = mutableImpl(); + impl_->paint.template get().value = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void SymbolLayer::setIconHaloBlurTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->paint.template get().options = options; + baseImpl = std::move(impl_); +} + +TransitionOptions SymbolLayer::getIconHaloBlurTransition() const { + return impl().paint.template get().options; +} + PropertyValue SymbolLayer::getDefaultIconHaloColor() { return { {} }; } @@ -812,31 +812,31 @@ TransitionOptions SymbolLayer::getIconHaloWidthTransition() const { return impl().paint.template get().options; } -PropertyValue SymbolLayer::getDefaultIconHaloBlur() { - return { 0 }; +PropertyValue SymbolLayer::getDefaultIconOpacity() { + return { 1 }; } -const PropertyValue& SymbolLayer::getIconHaloBlur() const { - return impl().paint.template get().value; +const PropertyValue& SymbolLayer::getIconOpacity() const { + return impl().paint.template get().value; } -void SymbolLayer::setIconHaloBlur(const PropertyValue& value) { - if (value == getIconHaloBlur()) +void SymbolLayer::setIconOpacity(const PropertyValue& value) { + if (value == getIconOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void SymbolLayer::setIconHaloBlurTransition(const TransitionOptions& options) { +void SymbolLayer::setIconOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions SymbolLayer::getIconHaloBlurTransition() const { - return impl().paint.template get().options; +TransitionOptions SymbolLayer::getIconOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue> SymbolLayer::getDefaultIconTranslate() { @@ -890,34 +890,7 @@ void SymbolLayer::setIconTranslateAnchorTransition(const TransitionOptions& opti } TransitionOptions SymbolLayer::getIconTranslateAnchorTransition() const { - return impl().paint.template get().options; -} - -PropertyValue SymbolLayer::getDefaultTextOpacity() { - return { 1 }; -} - -const PropertyValue& SymbolLayer::getTextOpacity() const { - return impl().paint.template get().value; -} - -void SymbolLayer::setTextOpacity(const PropertyValue& value) { - if (value == getTextOpacity()) - return; - auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} - -void SymbolLayer::setTextOpacityTransition(const TransitionOptions& options) { - auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; - baseImpl = std::move(impl_); -} - -TransitionOptions SymbolLayer::getTextOpacityTransition() const { - return impl().paint.template get().options; + return impl().paint.template get().options; } PropertyValue SymbolLayer::getDefaultTextColor() { @@ -947,6 +920,33 @@ TransitionOptions SymbolLayer::getTextColorTransition() const { return impl().paint.template get().options; } +PropertyValue SymbolLayer::getDefaultTextHaloBlur() { + return { 0 }; +} + +const PropertyValue& SymbolLayer::getTextHaloBlur() const { + return impl().paint.template get().value; +} + +void SymbolLayer::setTextHaloBlur(const PropertyValue& value) { + if (value == getTextHaloBlur()) + return; + auto impl_ = mutableImpl(); + impl_->paint.template get().value = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void SymbolLayer::setTextHaloBlurTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->paint.template get().options = options; + baseImpl = std::move(impl_); +} + +TransitionOptions SymbolLayer::getTextHaloBlurTransition() const { + return impl().paint.template get().options; +} + PropertyValue SymbolLayer::getDefaultTextHaloColor() { return { {} }; } @@ -1001,31 +1001,31 @@ TransitionOptions SymbolLayer::getTextHaloWidthTransition() const { return impl().paint.template get().options; } -PropertyValue SymbolLayer::getDefaultTextHaloBlur() { - return { 0 }; +PropertyValue SymbolLayer::getDefaultTextOpacity() { + return { 1 }; } -const PropertyValue& SymbolLayer::getTextHaloBlur() const { - return impl().paint.template get().value; +const PropertyValue& SymbolLayer::getTextOpacity() const { + return impl().paint.template get().value; } -void SymbolLayer::setTextHaloBlur(const PropertyValue& value) { - if (value == getTextHaloBlur()) +void SymbolLayer::setTextOpacity(const PropertyValue& value) { + if (value == getTextOpacity()) return; auto impl_ = mutableImpl(); - impl_->paint.template get().value = value; + impl_->paint.template get().value = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } -void SymbolLayer::setTextHaloBlurTransition(const TransitionOptions& options) { +void SymbolLayer::setTextOpacityTransition(const TransitionOptions& options) { auto impl_ = mutableImpl(); - impl_->paint.template get().options = options; + impl_->paint.template get().options = options; baseImpl = std::move(impl_); } -TransitionOptions SymbolLayer::getTextHaloBlurTransition() const { - return impl().paint.template get().options; +TransitionOptions SymbolLayer::getTextOpacityTransition() const { + return impl().paint.template get().options; } PropertyValue> SymbolLayer::getDefaultTextTranslate() { @@ -1086,63 +1086,63 @@ using namespace conversion; optional SymbolLayer::setPaintProperty(const std::string& name, const Convertible& value) { enum class Property : uint8_t { - IconOpacity, IconColor, + IconHaloBlur, IconHaloColor, IconHaloWidth, - IconHaloBlur, + IconOpacity, IconTranslate, IconTranslateAnchor, - TextOpacity, TextColor, + TextHaloBlur, TextHaloColor, TextHaloWidth, - TextHaloBlur, + TextOpacity, TextTranslate, TextTranslateAnchor, - IconOpacityTransition, IconColorTransition, + IconHaloBlurTransition, IconHaloColorTransition, IconHaloWidthTransition, - IconHaloBlurTransition, + IconOpacityTransition, IconTranslateTransition, IconTranslateAnchorTransition, - TextOpacityTransition, TextColorTransition, + TextHaloBlurTransition, TextHaloColorTransition, TextHaloWidthTransition, - TextHaloBlurTransition, + TextOpacityTransition, TextTranslateTransition, TextTranslateAnchorTransition, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "icon-opacity", static_cast(Property::IconOpacity) }, { "icon-color", static_cast(Property::IconColor) }, + { "icon-halo-blur", static_cast(Property::IconHaloBlur) }, { "icon-halo-color", static_cast(Property::IconHaloColor) }, { "icon-halo-width", static_cast(Property::IconHaloWidth) }, - { "icon-halo-blur", static_cast(Property::IconHaloBlur) }, + { "icon-opacity", static_cast(Property::IconOpacity) }, { "icon-translate", static_cast(Property::IconTranslate) }, { "icon-translate-anchor", static_cast(Property::IconTranslateAnchor) }, - { "text-opacity", static_cast(Property::TextOpacity) }, { "text-color", static_cast(Property::TextColor) }, + { "text-halo-blur", static_cast(Property::TextHaloBlur) }, { "text-halo-color", static_cast(Property::TextHaloColor) }, { "text-halo-width", static_cast(Property::TextHaloWidth) }, - { "text-halo-blur", static_cast(Property::TextHaloBlur) }, + { "text-opacity", static_cast(Property::TextOpacity) }, { "text-translate", static_cast(Property::TextTranslate) }, { "text-translate-anchor", static_cast(Property::TextTranslateAnchor) }, - { "icon-opacity-transition", static_cast(Property::IconOpacityTransition) }, { "icon-color-transition", static_cast(Property::IconColorTransition) }, + { "icon-halo-blur-transition", static_cast(Property::IconHaloBlurTransition) }, { "icon-halo-color-transition", static_cast(Property::IconHaloColorTransition) }, { "icon-halo-width-transition", static_cast(Property::IconHaloWidthTransition) }, - { "icon-halo-blur-transition", static_cast(Property::IconHaloBlurTransition) }, + { "icon-opacity-transition", static_cast(Property::IconOpacityTransition) }, { "icon-translate-transition", static_cast(Property::IconTranslateTransition) }, { "icon-translate-anchor-transition", static_cast(Property::IconTranslateAnchorTransition) }, - { "text-opacity-transition", static_cast(Property::TextOpacityTransition) }, { "text-color-transition", static_cast(Property::TextColorTransition) }, + { "text-halo-blur-transition", static_cast(Property::TextHaloBlurTransition) }, { "text-halo-color-transition", static_cast(Property::TextHaloColorTransition) }, { "text-halo-width-transition", static_cast(Property::TextHaloWidthTransition) }, - { "text-halo-blur-transition", static_cast(Property::TextHaloBlurTransition) }, + { "text-opacity-transition", static_cast(Property::TextOpacityTransition) }, { "text-translate-transition", static_cast(Property::TextTranslateTransition) }, { "text-translate-anchor-transition", static_cast(Property::TextTranslateAnchorTransition) } }); @@ -1155,69 +1155,69 @@ optional SymbolLayer::setPaintProperty(const std::string& name, const Con auto property = static_cast(it->second); - if (property == Property::IconOpacity || property == Property::IconHaloWidth || property == Property::IconHaloBlur || property == Property::TextOpacity || property == Property::TextHaloWidth || property == Property::TextHaloBlur) { + if (property == Property::IconColor || property == Property::IconHaloColor || property == Property::TextColor || property == Property::TextHaloColor) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::IconOpacity) { - setIconOpacity(*typedValue); - return nullopt; - } - - if (property == Property::IconHaloWidth) { - setIconHaloWidth(*typedValue); - return nullopt; - } - - if (property == Property::IconHaloBlur) { - setIconHaloBlur(*typedValue); + if (property == Property::IconColor) { + setIconColor(*typedValue); return nullopt; } - if (property == Property::TextOpacity) { - setTextOpacity(*typedValue); + if (property == Property::IconHaloColor) { + setIconHaloColor(*typedValue); return nullopt; } - if (property == Property::TextHaloWidth) { - setTextHaloWidth(*typedValue); + if (property == Property::TextColor) { + setTextColor(*typedValue); return nullopt; } - if (property == Property::TextHaloBlur) { - setTextHaloBlur(*typedValue); + if (property == Property::TextHaloColor) { + setTextHaloColor(*typedValue); return nullopt; } } - if (property == Property::IconColor || property == Property::IconHaloColor || property == Property::TextColor || property == Property::TextHaloColor) { + if (property == Property::IconHaloBlur || property == Property::IconHaloWidth || property == Property::IconOpacity || property == Property::TextHaloBlur || property == Property::TextHaloWidth || property == Property::TextOpacity) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::IconColor) { - setIconColor(*typedValue); + if (property == Property::IconHaloBlur) { + setIconHaloBlur(*typedValue); return nullopt; } - if (property == Property::IconHaloColor) { - setIconHaloColor(*typedValue); + if (property == Property::IconHaloWidth) { + setIconHaloWidth(*typedValue); return nullopt; } - if (property == Property::TextColor) { - setTextColor(*typedValue); + if (property == Property::IconOpacity) { + setIconOpacity(*typedValue); return nullopt; } - if (property == Property::TextHaloColor) { - setTextHaloColor(*typedValue); + if (property == Property::TextHaloBlur) { + setTextHaloBlur(*typedValue); + return nullopt; + } + + if (property == Property::TextHaloWidth) { + setTextHaloWidth(*typedValue); + return nullopt; + } + + if (property == Property::TextOpacity) { + setTextOpacity(*typedValue); return nullopt; } @@ -1268,13 +1268,13 @@ optional SymbolLayer::setPaintProperty(const std::string& name, const Con return error; } - if (property == Property::IconOpacityTransition) { - setIconOpacityTransition(*transition); + if (property == Property::IconColorTransition) { + setIconColorTransition(*transition); return nullopt; } - if (property == Property::IconColorTransition) { - setIconColorTransition(*transition); + if (property == Property::IconHaloBlurTransition) { + setIconHaloBlurTransition(*transition); return nullopt; } @@ -1288,8 +1288,8 @@ optional SymbolLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::IconHaloBlurTransition) { - setIconHaloBlurTransition(*transition); + if (property == Property::IconOpacityTransition) { + setIconOpacityTransition(*transition); return nullopt; } @@ -1303,13 +1303,13 @@ optional SymbolLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::TextOpacityTransition) { - setTextOpacityTransition(*transition); + if (property == Property::TextColorTransition) { + setTextColorTransition(*transition); return nullopt; } - if (property == Property::TextColorTransition) { - setTextColorTransition(*transition); + if (property == Property::TextHaloBlurTransition) { + setTextHaloBlurTransition(*transition); return nullopt; } @@ -1323,8 +1323,8 @@ optional SymbolLayer::setPaintProperty(const std::string& name, const Con return nullopt; } - if (property == Property::TextHaloBlurTransition) { - setTextHaloBlurTransition(*transition); + if (property == Property::TextOpacityTransition) { + setTextOpacityTransition(*transition); return nullopt; } @@ -1347,88 +1347,88 @@ optional SymbolLayer::setLayoutProperty(const std::string& name, const Co return Layer::setVisibility(value); } enum class Property { - SymbolPlacement, - SymbolSpacing, - SymbolAvoidEdges, - SymbolSortKey, - SymbolZOrder, IconAllowOverlap, + IconAnchor, IconIgnorePlacement, + IconImage, + IconKeepUpright, + IconOffset, IconOptional, + IconPadding, + IconPitchAlignment, + IconRotate, IconRotationAlignment, IconSize, IconTextFit, IconTextFitPadding, - IconImage, - IconRotate, - IconPadding, - IconKeepUpright, - IconOffset, - IconAnchor, - IconPitchAlignment, - TextPitchAlignment, - TextRotationAlignment, + SymbolAvoidEdges, + SymbolPlacement, + SymbolSortKey, + SymbolSpacing, + SymbolZOrder, + TextAllowOverlap, + TextAnchor, TextField, TextFont, - TextSize, - TextMaxWidth, - TextLineHeight, - TextLetterSpacing, + TextIgnorePlacement, TextJustify, - TextRadialOffset, - TextVariableAnchor, - TextAnchor, - TextMaxAngle, - TextRotate, - TextPadding, TextKeepUpright, - TextTransform, + TextLetterSpacing, + TextLineHeight, + TextMaxAngle, + TextMaxWidth, TextOffset, - TextAllowOverlap, - TextIgnorePlacement, TextOptional, + TextPadding, + TextPitchAlignment, + TextRadialOffset, + TextRotate, + TextRotationAlignment, + TextSize, + TextTransform, + TextVariableAnchor, }; MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map({ - { "symbol-placement", static_cast(Property::SymbolPlacement) }, - { "symbol-spacing", static_cast(Property::SymbolSpacing) }, - { "symbol-avoid-edges", static_cast(Property::SymbolAvoidEdges) }, - { "symbol-sort-key", static_cast(Property::SymbolSortKey) }, - { "symbol-z-order", static_cast(Property::SymbolZOrder) }, { "icon-allow-overlap", static_cast(Property::IconAllowOverlap) }, + { "icon-anchor", static_cast(Property::IconAnchor) }, { "icon-ignore-placement", static_cast(Property::IconIgnorePlacement) }, + { "icon-image", static_cast(Property::IconImage) }, + { "icon-keep-upright", static_cast(Property::IconKeepUpright) }, + { "icon-offset", static_cast(Property::IconOffset) }, { "icon-optional", static_cast(Property::IconOptional) }, + { "icon-padding", static_cast(Property::IconPadding) }, + { "icon-pitch-alignment", static_cast(Property::IconPitchAlignment) }, + { "icon-rotate", static_cast(Property::IconRotate) }, { "icon-rotation-alignment", static_cast(Property::IconRotationAlignment) }, { "icon-size", static_cast(Property::IconSize) }, { "icon-text-fit", static_cast(Property::IconTextFit) }, { "icon-text-fit-padding", static_cast(Property::IconTextFitPadding) }, - { "icon-image", static_cast(Property::IconImage) }, - { "icon-rotate", static_cast(Property::IconRotate) }, - { "icon-padding", static_cast(Property::IconPadding) }, - { "icon-keep-upright", static_cast(Property::IconKeepUpright) }, - { "icon-offset", static_cast(Property::IconOffset) }, - { "icon-anchor", static_cast(Property::IconAnchor) }, - { "icon-pitch-alignment", static_cast(Property::IconPitchAlignment) }, - { "text-pitch-alignment", static_cast(Property::TextPitchAlignment) }, - { "text-rotation-alignment", static_cast(Property::TextRotationAlignment) }, + { "symbol-avoid-edges", static_cast(Property::SymbolAvoidEdges) }, + { "symbol-placement", static_cast(Property::SymbolPlacement) }, + { "symbol-sort-key", static_cast(Property::SymbolSortKey) }, + { "symbol-spacing", static_cast(Property::SymbolSpacing) }, + { "symbol-z-order", static_cast(Property::SymbolZOrder) }, + { "text-allow-overlap", static_cast(Property::TextAllowOverlap) }, + { "text-anchor", static_cast(Property::TextAnchor) }, { "text-field", static_cast(Property::TextField) }, { "text-font", static_cast(Property::TextFont) }, - { "text-size", static_cast(Property::TextSize) }, - { "text-max-width", static_cast(Property::TextMaxWidth) }, - { "text-line-height", static_cast(Property::TextLineHeight) }, - { "text-letter-spacing", static_cast(Property::TextLetterSpacing) }, + { "text-ignore-placement", static_cast(Property::TextIgnorePlacement) }, { "text-justify", static_cast(Property::TextJustify) }, - { "text-radial-offset", static_cast(Property::TextRadialOffset) }, - { "text-variable-anchor", static_cast(Property::TextVariableAnchor) }, - { "text-anchor", static_cast(Property::TextAnchor) }, + { "text-keep-upright", static_cast(Property::TextKeepUpright) }, + { "text-letter-spacing", static_cast(Property::TextLetterSpacing) }, + { "text-line-height", static_cast(Property::TextLineHeight) }, { "text-max-angle", static_cast(Property::TextMaxAngle) }, - { "text-rotate", static_cast(Property::TextRotate) }, + { "text-max-width", static_cast(Property::TextMaxWidth) }, + { "text-offset", static_cast(Property::TextOffset) }, + { "text-optional", static_cast(Property::TextOptional) }, { "text-padding", static_cast(Property::TextPadding) }, - { "text-keep-upright", static_cast(Property::TextKeepUpright) }, + { "text-pitch-alignment", static_cast(Property::TextPitchAlignment) }, + { "text-radial-offset", static_cast(Property::TextRadialOffset) }, + { "text-rotate", static_cast(Property::TextRotate) }, + { "text-rotation-alignment", static_cast(Property::TextRotationAlignment) }, + { "text-size", static_cast(Property::TextSize) }, { "text-transform", static_cast(Property::TextTransform) }, - { "text-offset", static_cast(Property::TextOffset) }, - { "text-allow-overlap", static_cast(Property::TextAllowOverlap) }, - { "text-ignore-placement", static_cast(Property::TextIgnorePlacement) }, - { "text-optional", static_cast(Property::TextOptional) } + { "text-variable-anchor", static_cast(Property::TextVariableAnchor) } }); const auto it = properties.find(name.c_str()); @@ -1439,191 +1439,217 @@ optional SymbolLayer::setLayoutProperty(const std::string& name, const Co auto property = static_cast(it->second); - if (property == Property::SymbolPlacement) { - Error error; - optional> typedValue = convert>(value, error, false, false); - if (!typedValue) { - return error; - } - - setSymbolPlacement(*typedValue); - return nullopt; - - } - - if (property == Property::SymbolSpacing || property == Property::IconPadding || property == Property::TextLineHeight || property == Property::TextMaxAngle || property == Property::TextPadding) { + if (property == Property::IconAllowOverlap || property == Property::IconIgnorePlacement || property == Property::IconKeepUpright || property == Property::IconOptional || property == Property::SymbolAvoidEdges || property == Property::TextAllowOverlap || property == Property::TextIgnorePlacement || property == Property::TextKeepUpright || property == Property::TextOptional) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::SymbolSpacing) { - setSymbolSpacing(*typedValue); - return nullopt; - } - - if (property == Property::IconPadding) { - setIconPadding(*typedValue); + if (property == Property::IconAllowOverlap) { + setIconAllowOverlap(*typedValue); return nullopt; } - if (property == Property::TextLineHeight) { - setTextLineHeight(*typedValue); + if (property == Property::IconIgnorePlacement) { + setIconIgnorePlacement(*typedValue); return nullopt; } - if (property == Property::TextMaxAngle) { - setTextMaxAngle(*typedValue); + if (property == Property::IconKeepUpright) { + setIconKeepUpright(*typedValue); return nullopt; } - if (property == Property::TextPadding) { - setTextPadding(*typedValue); + if (property == Property::IconOptional) { + setIconOptional(*typedValue); return nullopt; } - } - - if (property == Property::SymbolAvoidEdges || property == Property::IconAllowOverlap || property == Property::IconIgnorePlacement || property == Property::IconOptional || property == Property::IconKeepUpright || property == Property::TextKeepUpright || property == Property::TextAllowOverlap || property == Property::TextIgnorePlacement || property == Property::TextOptional) { - Error error; - optional> typedValue = convert>(value, error, false, false); - if (!typedValue) { - return error; - } - if (property == Property::SymbolAvoidEdges) { setSymbolAvoidEdges(*typedValue); return nullopt; } - if (property == Property::IconAllowOverlap) { - setIconAllowOverlap(*typedValue); + if (property == Property::TextAllowOverlap) { + setTextAllowOverlap(*typedValue); return nullopt; } - if (property == Property::IconIgnorePlacement) { - setIconIgnorePlacement(*typedValue); + if (property == Property::TextIgnorePlacement) { + setTextIgnorePlacement(*typedValue); return nullopt; } - if (property == Property::IconOptional) { - setIconOptional(*typedValue); + if (property == Property::TextKeepUpright) { + setTextKeepUpright(*typedValue); return nullopt; } - if (property == Property::IconKeepUpright) { - setIconKeepUpright(*typedValue); + if (property == Property::TextOptional) { + setTextOptional(*typedValue); return nullopt; } - if (property == Property::TextKeepUpright) { - setTextKeepUpright(*typedValue); - return nullopt; + } + + if (property == Property::IconAnchor || property == Property::TextAnchor) { + Error error; + optional> typedValue = convert>(value, error, true, false); + if (!typedValue) { + return error; } - if (property == Property::TextAllowOverlap) { - setTextAllowOverlap(*typedValue); + if (property == Property::IconAnchor) { + setIconAnchor(*typedValue); return nullopt; } - if (property == Property::TextIgnorePlacement) { - setTextIgnorePlacement(*typedValue); + if (property == Property::TextAnchor) { + setTextAnchor(*typedValue); return nullopt; } - if (property == Property::TextOptional) { - setTextOptional(*typedValue); - return nullopt; + } + + if (property == Property::IconImage) { + Error error; + optional> typedValue = convert>(value, error, true, true); + if (!typedValue) { + return error; } + setIconImage(*typedValue); + return nullopt; + } - if (property == Property::SymbolSortKey || property == Property::IconSize || property == Property::IconRotate || property == Property::TextSize || property == Property::TextMaxWidth || property == Property::TextLetterSpacing || property == Property::TextRadialOffset || property == Property::TextRotate) { + if (property == Property::IconOffset || property == Property::TextOffset) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional>> typedValue = convert>>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::SymbolSortKey) { - setSymbolSortKey(*typedValue); + if (property == Property::IconOffset) { + setIconOffset(*typedValue); return nullopt; } - if (property == Property::IconSize) { - setIconSize(*typedValue); + if (property == Property::TextOffset) { + setTextOffset(*typedValue); return nullopt; } - if (property == Property::IconRotate) { - setIconRotate(*typedValue); - return nullopt; + } + + if (property == Property::IconPadding || property == Property::SymbolSpacing || property == Property::TextLineHeight || property == Property::TextMaxAngle || property == Property::TextPadding) { + Error error; + optional> typedValue = convert>(value, error, false, false); + if (!typedValue) { + return error; } - if (property == Property::TextSize) { - setTextSize(*typedValue); + if (property == Property::IconPadding) { + setIconPadding(*typedValue); return nullopt; } - if (property == Property::TextMaxWidth) { - setTextMaxWidth(*typedValue); + if (property == Property::SymbolSpacing) { + setSymbolSpacing(*typedValue); return nullopt; } - if (property == Property::TextLetterSpacing) { - setTextLetterSpacing(*typedValue); + if (property == Property::TextLineHeight) { + setTextLineHeight(*typedValue); return nullopt; } - if (property == Property::TextRadialOffset) { - setTextRadialOffset(*typedValue); + if (property == Property::TextMaxAngle) { + setTextMaxAngle(*typedValue); return nullopt; } - if (property == Property::TextRotate) { - setTextRotate(*typedValue); + if (property == Property::TextPadding) { + setTextPadding(*typedValue); return nullopt; } } - if (property == Property::SymbolZOrder) { + if (property == Property::IconPitchAlignment || property == Property::IconRotationAlignment || property == Property::TextPitchAlignment || property == Property::TextRotationAlignment) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setSymbolZOrder(*typedValue); - return nullopt; + if (property == Property::IconPitchAlignment) { + setIconPitchAlignment(*typedValue); + return nullopt; + } + + if (property == Property::IconRotationAlignment) { + setIconRotationAlignment(*typedValue); + return nullopt; + } + + if (property == Property::TextPitchAlignment) { + setTextPitchAlignment(*typedValue); + return nullopt; + } + + if (property == Property::TextRotationAlignment) { + setTextRotationAlignment(*typedValue); + return nullopt; + } } - if (property == Property::IconRotationAlignment || property == Property::IconPitchAlignment || property == Property::TextPitchAlignment || property == Property::TextRotationAlignment) { + if (property == Property::IconRotate || property == Property::IconSize || property == Property::SymbolSortKey || property == Property::TextLetterSpacing || property == Property::TextMaxWidth || property == Property::TextRadialOffset || property == Property::TextRotate || property == Property::TextSize) { Error error; - optional> typedValue = convert>(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - if (property == Property::IconRotationAlignment) { - setIconRotationAlignment(*typedValue); + if (property == Property::IconRotate) { + setIconRotate(*typedValue); return nullopt; } - if (property == Property::IconPitchAlignment) { - setIconPitchAlignment(*typedValue); + if (property == Property::IconSize) { + setIconSize(*typedValue); return nullopt; } - if (property == Property::TextPitchAlignment) { - setTextPitchAlignment(*typedValue); + if (property == Property::SymbolSortKey) { + setSymbolSortKey(*typedValue); return nullopt; } - if (property == Property::TextRotationAlignment) { - setTextRotationAlignment(*typedValue); + if (property == Property::TextLetterSpacing) { + setTextLetterSpacing(*typedValue); + return nullopt; + } + + if (property == Property::TextMaxWidth) { + setTextMaxWidth(*typedValue); + return nullopt; + } + + if (property == Property::TextRadialOffset) { + setTextRadialOffset(*typedValue); + return nullopt; + } + + if (property == Property::TextRotate) { + setTextRotate(*typedValue); + return nullopt; + } + + if (property == Property::TextSize) { + setTextSize(*typedValue); return nullopt; } @@ -1653,53 +1679,27 @@ optional SymbolLayer::setLayoutProperty(const std::string& name, const Co } - if (property == Property::IconImage) { + if (property == Property::SymbolPlacement) { Error error; - optional> typedValue = convert>(value, error, true, true); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - setIconImage(*typedValue); + setSymbolPlacement(*typedValue); return nullopt; } - if (property == Property::IconOffset || property == Property::TextOffset) { - Error error; - optional>> typedValue = convert>>(value, error, true, false); - if (!typedValue) { - return error; - } - - if (property == Property::IconOffset) { - setIconOffset(*typedValue); - return nullopt; - } - - if (property == Property::TextOffset) { - setTextOffset(*typedValue); - return nullopt; - } - - } - - if (property == Property::IconAnchor || property == Property::TextAnchor) { + if (property == Property::SymbolZOrder) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional> typedValue = convert>(value, error, false, false); if (!typedValue) { return error; } - if (property == Property::IconAnchor) { - setIconAnchor(*typedValue); - return nullopt; - } - - if (property == Property::TextAnchor) { - setTextAnchor(*typedValue); - return nullopt; - } + setSymbolZOrder(*typedValue); + return nullopt; } @@ -1739,26 +1739,26 @@ optional SymbolLayer::setLayoutProperty(const std::string& name, const Co } - if (property == Property::TextVariableAnchor) { + if (property == Property::TextTransform) { Error error; - optional>> typedValue = convert>>(value, error, false, false); + optional> typedValue = convert>(value, error, true, false); if (!typedValue) { return error; } - setTextVariableAnchor(*typedValue); + setTextTransform(*typedValue); return nullopt; } - if (property == Property::TextTransform) { + if (property == Property::TextVariableAnchor) { Error error; - optional> typedValue = convert>(value, error, true, false); + optional>> typedValue = convert>>(value, error, false, false); if (!typedValue) { return error; } - setTextTransform(*typedValue); + setTextVariableAnchor(*typedValue); return nullopt; } diff --git a/src/mbgl/style/layers/symbol_layer_properties.hpp b/src/mbgl/style/layers/symbol_layer_properties.hpp index 6e3fa54241..7b630a1ca3 100644 --- a/src/mbgl/style/layers/symbol_layer_properties.hpp +++ b/src/mbgl/style/layers/symbol_layer_properties.hpp @@ -14,39 +14,34 @@ namespace mbgl { namespace style { -struct SymbolPlacement : LayoutProperty { - static constexpr const char *name() { return "symbol-placement"; } - static SymbolPlacementType defaultValue() { return SymbolPlacementType::Point; } +struct IconAllowOverlap : LayoutProperty { + static constexpr const char *name() { return "icon-allow-overlap"; } + static bool defaultValue() { return false; } }; -struct SymbolSpacing : LayoutProperty { - static constexpr const char *name() { return "symbol-spacing"; } - static float defaultValue() { return 250; } +struct IconAnchor : DataDrivenLayoutProperty { + static constexpr const char *name() { return "icon-anchor"; } + static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; } }; -struct SymbolAvoidEdges : LayoutProperty { - static constexpr const char *name() { return "symbol-avoid-edges"; } +struct IconIgnorePlacement : LayoutProperty { + static constexpr const char *name() { return "icon-ignore-placement"; } static bool defaultValue() { return false; } }; -struct SymbolSortKey : DataDrivenLayoutProperty { - static constexpr const char *name() { return "symbol-sort-key"; } - static float defaultValue() { return 0; } -}; - -struct SymbolZOrder : LayoutProperty { - static constexpr const char *name() { return "symbol-z-order"; } - static SymbolZOrderType defaultValue() { return SymbolZOrderType::Auto; } +struct IconImage : DataDrivenLayoutProperty { + static constexpr const char *name() { return "icon-image"; } + static std::string defaultValue() { return ""; } }; -struct IconAllowOverlap : LayoutProperty { - static constexpr const char *name() { return "icon-allow-overlap"; } +struct IconKeepUpright : LayoutProperty { + static constexpr const char *name() { return "icon-keep-upright"; } static bool defaultValue() { return false; } }; -struct IconIgnorePlacement : LayoutProperty { - static constexpr const char *name() { return "icon-ignore-placement"; } - static bool defaultValue() { return false; } +struct IconOffset : DataDrivenLayoutProperty> { + static constexpr const char *name() { return "icon-offset"; } + static std::array defaultValue() { return {{ 0, 0 }}; } }; struct IconOptional : LayoutProperty { @@ -54,6 +49,21 @@ struct IconOptional : LayoutProperty { static bool defaultValue() { return false; } }; +struct IconPadding : LayoutProperty { + static constexpr const char *name() { return "icon-padding"; } + static float defaultValue() { return 2; } +}; + +struct IconPitchAlignment : LayoutProperty { + static constexpr const char *name() { return "icon-pitch-alignment"; } + static AlignmentType defaultValue() { return AlignmentType::Auto; } +}; + +struct IconRotate : DataDrivenLayoutProperty { + static constexpr const char *name() { return "icon-rotate"; } + static float defaultValue() { return 0; } +}; + struct IconRotationAlignment : LayoutProperty { static constexpr const char *name() { return "icon-rotation-alignment"; } static AlignmentType defaultValue() { return AlignmentType::Auto; } @@ -74,49 +84,39 @@ struct IconTextFitPadding : LayoutProperty> { static std::array defaultValue() { return {{ 0, 0, 0, 0 }}; } }; -struct IconImage : DataDrivenLayoutProperty { - static constexpr const char *name() { return "icon-image"; } - static std::string defaultValue() { return ""; } -}; - -struct IconRotate : DataDrivenLayoutProperty { - static constexpr const char *name() { return "icon-rotate"; } - static float defaultValue() { return 0; } -}; - -struct IconPadding : LayoutProperty { - static constexpr const char *name() { return "icon-padding"; } - static float defaultValue() { return 2; } +struct SymbolAvoidEdges : LayoutProperty { + static constexpr const char *name() { return "symbol-avoid-edges"; } + static bool defaultValue() { return false; } }; -struct IconKeepUpright : LayoutProperty { - static constexpr const char *name() { return "icon-keep-upright"; } - static bool defaultValue() { return false; } +struct SymbolPlacement : LayoutProperty { + static constexpr const char *name() { return "symbol-placement"; } + static SymbolPlacementType defaultValue() { return SymbolPlacementType::Point; } }; -struct IconOffset : DataDrivenLayoutProperty> { - static constexpr const char *name() { return "icon-offset"; } - static std::array defaultValue() { return {{ 0, 0 }}; } +struct SymbolSortKey : DataDrivenLayoutProperty { + static constexpr const char *name() { return "symbol-sort-key"; } + static float defaultValue() { return 0; } }; -struct IconAnchor : DataDrivenLayoutProperty { - static constexpr const char *name() { return "icon-anchor"; } - static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; } +struct SymbolSpacing : LayoutProperty { + static constexpr const char *name() { return "symbol-spacing"; } + static float defaultValue() { return 250; } }; -struct IconPitchAlignment : LayoutProperty { - static constexpr const char *name() { return "icon-pitch-alignment"; } - static AlignmentType defaultValue() { return AlignmentType::Auto; } +struct SymbolZOrder : LayoutProperty { + static constexpr const char *name() { return "symbol-z-order"; } + static SymbolZOrderType defaultValue() { return SymbolZOrderType::Auto; } }; -struct TextPitchAlignment : LayoutProperty { - static constexpr const char *name() { return "text-pitch-alignment"; } - static AlignmentType defaultValue() { return AlignmentType::Auto; } +struct TextAllowOverlap : LayoutProperty { + static constexpr const char *name() { return "text-allow-overlap"; } + static bool defaultValue() { return false; } }; -struct TextRotationAlignment : LayoutProperty { - static constexpr const char *name() { return "text-rotation-alignment"; } - static AlignmentType defaultValue() { return AlignmentType::Auto; } +struct TextAnchor : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-anchor"; } + static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; } }; struct TextField : DataDrivenLayoutProperty { @@ -129,19 +129,19 @@ struct TextFont : DataDrivenLayoutProperty> { static std::vector defaultValue() { return { "Open Sans Regular", "Arial Unicode MS Regular" }; } }; -struct TextSize : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-size"; } - static float defaultValue() { return 16; } +struct TextIgnorePlacement : LayoutProperty { + static constexpr const char *name() { return "text-ignore-placement"; } + static bool defaultValue() { return false; } }; -struct TextMaxWidth : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-max-width"; } - static float defaultValue() { return 10; } +struct TextJustify : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-justify"; } + static TextJustifyType defaultValue() { return TextJustifyType::Center; } }; -struct TextLineHeight : LayoutProperty { - static constexpr const char *name() { return "text-line-height"; } - static float defaultValue() { return 1.2; } +struct TextKeepUpright : LayoutProperty { + static constexpr const char *name() { return "text-keep-upright"; } + static bool defaultValue() { return true; } }; struct TextLetterSpacing : DataDrivenLayoutProperty { @@ -149,34 +149,29 @@ struct TextLetterSpacing : DataDrivenLayoutProperty { static float defaultValue() { return 0; } }; -struct TextJustify : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-justify"; } - static TextJustifyType defaultValue() { return TextJustifyType::Center; } -}; - -struct TextRadialOffset : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-radial-offset"; } - static float defaultValue() { return 0; } +struct TextLineHeight : LayoutProperty { + static constexpr const char *name() { return "text-line-height"; } + static float defaultValue() { return 1.2; } }; -struct TextVariableAnchor : LayoutProperty> { - static constexpr const char *name() { return "text-variable-anchor"; } - static std::vector defaultValue() { return { }; } +struct TextMaxAngle : LayoutProperty { + static constexpr const char *name() { return "text-max-angle"; } + static float defaultValue() { return 45; } }; -struct TextAnchor : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-anchor"; } - static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; } +struct TextMaxWidth : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-max-width"; } + static float defaultValue() { return 10; } }; -struct TextMaxAngle : LayoutProperty { - static constexpr const char *name() { return "text-max-angle"; } - static float defaultValue() { return 45; } +struct TextOffset : DataDrivenLayoutProperty> { + static constexpr const char *name() { return "text-offset"; } + static std::array defaultValue() { return {{ 0, 0 }}; } }; -struct TextRotate : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-rotate"; } - static float defaultValue() { return 0; } +struct TextOptional : LayoutProperty { + static constexpr const char *name() { return "text-optional"; } + static bool defaultValue() { return false; } }; struct TextPadding : LayoutProperty { @@ -184,44 +179,49 @@ struct TextPadding : LayoutProperty { static float defaultValue() { return 2; } }; -struct TextKeepUpright : LayoutProperty { - static constexpr const char *name() { return "text-keep-upright"; } - static bool defaultValue() { return true; } +struct TextPitchAlignment : LayoutProperty { + static constexpr const char *name() { return "text-pitch-alignment"; } + static AlignmentType defaultValue() { return AlignmentType::Auto; } }; -struct TextTransform : DataDrivenLayoutProperty { - static constexpr const char *name() { return "text-transform"; } - static TextTransformType defaultValue() { return TextTransformType::None; } +struct TextRadialOffset : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-radial-offset"; } + static float defaultValue() { return 0; } }; -struct TextOffset : DataDrivenLayoutProperty> { - static constexpr const char *name() { return "text-offset"; } - static std::array defaultValue() { return {{ 0, 0 }}; } +struct TextRotate : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-rotate"; } + static float defaultValue() { return 0; } }; -struct TextAllowOverlap : LayoutProperty { - static constexpr const char *name() { return "text-allow-overlap"; } - static bool defaultValue() { return false; } +struct TextRotationAlignment : LayoutProperty { + static constexpr const char *name() { return "text-rotation-alignment"; } + static AlignmentType defaultValue() { return AlignmentType::Auto; } }; -struct TextIgnorePlacement : LayoutProperty { - static constexpr const char *name() { return "text-ignore-placement"; } - static bool defaultValue() { return false; } +struct TextSize : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-size"; } + static float defaultValue() { return 16; } }; -struct TextOptional : LayoutProperty { - static constexpr const char *name() { return "text-optional"; } - static bool defaultValue() { return false; } +struct TextTransform : DataDrivenLayoutProperty { + static constexpr const char *name() { return "text-transform"; } + static TextTransformType defaultValue() { return TextTransformType::None; } }; -struct IconOpacity : DataDrivenPaintProperty { - static float defaultValue() { return 1; } +struct TextVariableAnchor : LayoutProperty> { + static constexpr const char *name() { return "text-variable-anchor"; } + static std::vector defaultValue() { return { }; } }; struct IconColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } }; +struct IconHaloBlur : DataDrivenPaintProperty { + static float defaultValue() { return 0; } +}; + struct IconHaloColor : DataDrivenPaintProperty { static Color defaultValue() { return {}; } }; @@ -230,8 +230,8 @@ struct IconHaloWidth : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct IconOpacity : DataDrivenPaintProperty { + static float defaultValue() { return 1; } }; struct IconTranslate : PaintProperty> { @@ -242,10 +242,6 @@ struct IconTranslateAnchor : PaintProperty { static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; } }; -struct TextOpacity : DataDrivenPaintProperty { - static float defaultValue() { return 1; } -}; - struct TextColor : DataDrivenPaintProperty { static Color defaultValue() { return Color::black(); } static constexpr const char *name() { return "text-color"; } @@ -253,6 +249,10 @@ struct TextColor : DataDrivenPaintProperty static bool hasOverride(const T& t) { return !!t.textColor; }; }; +struct TextHaloBlur : DataDrivenPaintProperty { + static float defaultValue() { return 0; } +}; + struct TextHaloColor : DataDrivenPaintProperty { static Color defaultValue() { return {}; } }; @@ -261,8 +261,8 @@ struct TextHaloWidth : DataDrivenPaintProperty { - static float defaultValue() { return 0; } +struct TextOpacity : DataDrivenPaintProperty { + static float defaultValue() { return 1; } }; struct TextTranslate : PaintProperty> { @@ -274,61 +274,61 @@ struct TextTranslateAnchor : PaintProperty { }; class SymbolLayoutProperties : public Properties< - SymbolPlacement, - SymbolSpacing, - SymbolAvoidEdges, - SymbolSortKey, - SymbolZOrder, IconAllowOverlap, + IconAnchor, IconIgnorePlacement, + IconImage, + IconKeepUpright, + IconOffset, IconOptional, + IconPadding, + IconPitchAlignment, + IconRotate, IconRotationAlignment, IconSize, IconTextFit, IconTextFitPadding, - IconImage, - IconRotate, - IconPadding, - IconKeepUpright, - IconOffset, - IconAnchor, - IconPitchAlignment, - TextPitchAlignment, - TextRotationAlignment, + SymbolAvoidEdges, + SymbolPlacement, + SymbolSortKey, + SymbolSpacing, + SymbolZOrder, + TextAllowOverlap, + TextAnchor, TextField, TextFont, - TextSize, - TextMaxWidth, - TextLineHeight, - TextLetterSpacing, + TextIgnorePlacement, TextJustify, - TextRadialOffset, - TextVariableAnchor, - TextAnchor, + TextKeepUpright, + TextLetterSpacing, + TextLineHeight, TextMaxAngle, - TextRotate, + TextMaxWidth, + TextOffset, + TextOptional, TextPadding, - TextKeepUpright, + TextPitchAlignment, + TextRadialOffset, + TextRotate, + TextRotationAlignment, + TextSize, TextTransform, - TextOffset, - TextAllowOverlap, - TextIgnorePlacement, - TextOptional + TextVariableAnchor > {}; class SymbolPaintProperties : public Properties< - IconOpacity, IconColor, + IconHaloBlur, IconHaloColor, IconHaloWidth, - IconHaloBlur, + IconOpacity, IconTranslate, IconTranslateAnchor, - TextOpacity, TextColor, + TextHaloBlur, TextHaloColor, TextHaloWidth, - TextHaloBlur, + TextOpacity, TextTranslate, TextTranslateAnchor > {}; diff --git a/src/mbgl/style/light.cpp b/src/mbgl/style/light.cpp index 352dc4d942..a88cc02bd7 100644 --- a/src/mbgl/style/light.cpp +++ b/src/mbgl/style/light.cpp @@ -50,32 +50,6 @@ TransitionOptions Light::getAnchorTransition() const { return impl->properties.template get().options; } -Position Light::getDefaultPosition() { - return LightPosition::defaultValue(); -} - -PropertyValue Light::getPosition() const { - return impl->properties.template get().value; -} - -void Light::setPosition(PropertyValue property) { - auto impl_ = mutableImpl(); - impl_->properties.template get().value = property; - impl = std::move(impl_); - observer->onLightChanged(*this); -} - -void Light::setPositionTransition(const TransitionOptions& options) { - auto impl_ = mutableImpl(); - impl_->properties.template get().options = options; - impl = std::move(impl_); - observer->onLightChanged(*this); -} - -TransitionOptions Light::getPositionTransition() const { - return impl->properties.template get().options; -} - Color Light::getDefaultColor() { return LightColor::defaultValue(); } @@ -128,6 +102,32 @@ TransitionOptions Light::getIntensityTransition() const { return impl->properties.template get().options; } +Position Light::getDefaultPosition() { + return LightPosition::defaultValue(); +} + +PropertyValue Light::getPosition() const { + return impl->properties.template get().value; +} + +void Light::setPosition(PropertyValue property) { + auto impl_ = mutableImpl(); + impl_->properties.template get().value = property; + impl = std::move(impl_); + observer->onLightChanged(*this); +} + +void Light::setPositionTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->properties.template get().options = options; + impl = std::move(impl_); + observer->onLightChanged(*this); +} + +TransitionOptions Light::getPositionTransition() const { + return impl->properties.template get().options; +} + } // namespace style } // namespace mbgl diff --git a/test/style/conversion/stringify.test.cpp b/test/style/conversion/stringify.test.cpp index 8bc78098cd..4b4ba2766e 100644 --- a/test/style/conversion/stringify.test.cpp +++ b/test/style/conversion/stringify.test.cpp @@ -142,5 +142,5 @@ TEST(Stringify, Layout) { SymbolLayoutProperties::Unevaluated layout; layout.get() = true; layout.get() = 2.0; - ASSERT_EQ(stringify(layout), "{\"symbol-avoid-edges\":true,\"icon-padding\":2.0}"); + ASSERT_EQ(stringify(layout), "{\"icon-padding\":2.0,\"symbol-avoid-edges\":true}"); } -- cgit v1.2.1