[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.
This commit is contained in:
Konstantin Käfer
2019-05-02 15:25:48 +02:00
parent a48152a981
commit 2489afdd0d
31 changed files with 2590 additions and 2576 deletions

View File

@@ -30,18 +30,18 @@ public:
void setBackgroundColorTransition(const TransitionOptions&);
TransitionOptions getBackgroundColorTransition() const;
static PropertyValue<std::string> getDefaultBackgroundPattern();
const PropertyValue<std::string>& getBackgroundPattern() const;
void setBackgroundPattern(const PropertyValue<std::string>&);
void setBackgroundPatternTransition(const TransitionOptions&);
TransitionOptions getBackgroundPatternTransition() const;
static PropertyValue<float> getDefaultBackgroundOpacity();
const PropertyValue<float>& getBackgroundOpacity() const;
void setBackgroundOpacity(const PropertyValue<float>&);
void setBackgroundOpacityTransition(const TransitionOptions&);
TransitionOptions getBackgroundOpacityTransition() const;
static PropertyValue<std::string> getDefaultBackgroundPattern();
const PropertyValue<std::string>& getBackgroundPattern() const;
void setBackgroundPattern(const PropertyValue<std::string>&);
void setBackgroundPatternTransition(const TransitionOptions&);
TransitionOptions getBackgroundPatternTransition() const;
// Private implementation
class Impl;

View File

@@ -24,11 +24,11 @@ public:
// Paint properties
static PropertyValue<float> getDefaultCircleRadius();
const PropertyValue<float>& getCircleRadius() const;
void setCircleRadius(const PropertyValue<float>&);
void setCircleRadiusTransition(const TransitionOptions&);
TransitionOptions getCircleRadiusTransition() const;
static PropertyValue<float> getDefaultCircleBlur();
const PropertyValue<float>& getCircleBlur() const;
void setCircleBlur(const PropertyValue<float>&);
void setCircleBlurTransition(const TransitionOptions&);
TransitionOptions getCircleBlurTransition() const;
static PropertyValue<Color> getDefaultCircleColor();
const PropertyValue<Color>& getCircleColor() const;
@@ -36,47 +36,29 @@ public:
void setCircleColorTransition(const TransitionOptions&);
TransitionOptions getCircleColorTransition() const;
static PropertyValue<float> getDefaultCircleBlur();
const PropertyValue<float>& getCircleBlur() const;
void setCircleBlur(const PropertyValue<float>&);
void setCircleBlurTransition(const TransitionOptions&);
TransitionOptions getCircleBlurTransition() const;
static PropertyValue<float> getDefaultCircleOpacity();
const PropertyValue<float>& getCircleOpacity() const;
void setCircleOpacity(const PropertyValue<float>&);
void setCircleOpacityTransition(const TransitionOptions&);
TransitionOptions getCircleOpacityTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultCircleTranslate();
const PropertyValue<std::array<float, 2>>& getCircleTranslate() const;
void setCircleTranslate(const PropertyValue<std::array<float, 2>>&);
void setCircleTranslateTransition(const TransitionOptions&);
TransitionOptions getCircleTranslateTransition() const;
static PropertyValue<TranslateAnchorType> getDefaultCircleTranslateAnchor();
const PropertyValue<TranslateAnchorType>& getCircleTranslateAnchor() const;
void setCircleTranslateAnchor(const PropertyValue<TranslateAnchorType>&);
void setCircleTranslateAnchorTransition(const TransitionOptions&);
TransitionOptions getCircleTranslateAnchorTransition() const;
static PropertyValue<CirclePitchScaleType> getDefaultCirclePitchScale();
const PropertyValue<CirclePitchScaleType>& getCirclePitchScale() const;
void setCirclePitchScale(const PropertyValue<CirclePitchScaleType>&);
void setCirclePitchScaleTransition(const TransitionOptions&);
TransitionOptions getCirclePitchScaleTransition() const;
static PropertyValue<AlignmentType> getDefaultCirclePitchAlignment();
const PropertyValue<AlignmentType>& getCirclePitchAlignment() const;
void setCirclePitchAlignment(const PropertyValue<AlignmentType>&);
void setCirclePitchAlignmentTransition(const TransitionOptions&);
TransitionOptions getCirclePitchAlignmentTransition() const;
static PropertyValue<float> getDefaultCircleStrokeWidth();
const PropertyValue<float>& getCircleStrokeWidth() const;
void setCircleStrokeWidth(const PropertyValue<float>&);
void setCircleStrokeWidthTransition(const TransitionOptions&);
TransitionOptions getCircleStrokeWidthTransition() const;
static PropertyValue<CirclePitchScaleType> getDefaultCirclePitchScale();
const PropertyValue<CirclePitchScaleType>& getCirclePitchScale() const;
void setCirclePitchScale(const PropertyValue<CirclePitchScaleType>&);
void setCirclePitchScaleTransition(const TransitionOptions&);
TransitionOptions getCirclePitchScaleTransition() const;
static PropertyValue<float> getDefaultCircleRadius();
const PropertyValue<float>& getCircleRadius() const;
void setCircleRadius(const PropertyValue<float>&);
void setCircleRadiusTransition(const TransitionOptions&);
TransitionOptions getCircleRadiusTransition() const;
static PropertyValue<Color> getDefaultCircleStrokeColor();
const PropertyValue<Color>& getCircleStrokeColor() const;
@@ -90,6 +72,24 @@ public:
void setCircleStrokeOpacityTransition(const TransitionOptions&);
TransitionOptions getCircleStrokeOpacityTransition() const;
static PropertyValue<float> getDefaultCircleStrokeWidth();
const PropertyValue<float>& getCircleStrokeWidth() const;
void setCircleStrokeWidth(const PropertyValue<float>&);
void setCircleStrokeWidthTransition(const TransitionOptions&);
TransitionOptions getCircleStrokeWidthTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultCircleTranslate();
const PropertyValue<std::array<float, 2>>& getCircleTranslate() const;
void setCircleTranslate(const PropertyValue<std::array<float, 2>>&);
void setCircleTranslateTransition(const TransitionOptions&);
TransitionOptions getCircleTranslateTransition() const;
static PropertyValue<TranslateAnchorType> getDefaultCircleTranslateAnchor();
const PropertyValue<TranslateAnchorType>& getCircleTranslateAnchor() const;
void setCircleTranslateAnchor(const PropertyValue<TranslateAnchorType>&);
void setCircleTranslateAnchorTransition(const TransitionOptions&);
TransitionOptions getCircleTranslateAnchorTransition() const;
// Private implementation
class Impl;

View File

@@ -24,11 +24,11 @@ public:
// Paint properties
static PropertyValue<float> getDefaultFillExtrusionOpacity();
const PropertyValue<float>& getFillExtrusionOpacity() const;
void setFillExtrusionOpacity(const PropertyValue<float>&);
void setFillExtrusionOpacityTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionOpacityTransition() const;
static PropertyValue<float> getDefaultFillExtrusionBase();
const PropertyValue<float>& getFillExtrusionBase() const;
void setFillExtrusionBase(const PropertyValue<float>&);
void setFillExtrusionBaseTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionBaseTransition() const;
static PropertyValue<Color> getDefaultFillExtrusionColor();
const PropertyValue<Color>& getFillExtrusionColor() const;
@@ -36,6 +36,24 @@ public:
void setFillExtrusionColorTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionColorTransition() const;
static PropertyValue<float> getDefaultFillExtrusionHeight();
const PropertyValue<float>& getFillExtrusionHeight() const;
void setFillExtrusionHeight(const PropertyValue<float>&);
void setFillExtrusionHeightTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionHeightTransition() const;
static PropertyValue<float> getDefaultFillExtrusionOpacity();
const PropertyValue<float>& getFillExtrusionOpacity() const;
void setFillExtrusionOpacity(const PropertyValue<float>&);
void setFillExtrusionOpacityTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionOpacityTransition() const;
static PropertyValue<std::string> getDefaultFillExtrusionPattern();
const PropertyValue<std::string>& getFillExtrusionPattern() const;
void setFillExtrusionPattern(const PropertyValue<std::string>&);
void setFillExtrusionPatternTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionPatternTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultFillExtrusionTranslate();
const PropertyValue<std::array<float, 2>>& getFillExtrusionTranslate() const;
void setFillExtrusionTranslate(const PropertyValue<std::array<float, 2>>&);
@@ -48,24 +66,6 @@ public:
void setFillExtrusionTranslateAnchorTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionTranslateAnchorTransition() const;
static PropertyValue<std::string> getDefaultFillExtrusionPattern();
const PropertyValue<std::string>& getFillExtrusionPattern() const;
void setFillExtrusionPattern(const PropertyValue<std::string>&);
void setFillExtrusionPatternTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionPatternTransition() const;
static PropertyValue<float> getDefaultFillExtrusionHeight();
const PropertyValue<float>& getFillExtrusionHeight() const;
void setFillExtrusionHeight(const PropertyValue<float>&);
void setFillExtrusionHeightTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionHeightTransition() const;
static PropertyValue<float> getDefaultFillExtrusionBase();
const PropertyValue<float>& getFillExtrusionBase() const;
void setFillExtrusionBase(const PropertyValue<float>&);
void setFillExtrusionBaseTransition(const TransitionOptions&);
TransitionOptions getFillExtrusionBaseTransition() const;
static PropertyValue<bool> getDefaultFillExtrusionVerticalGradient();
const PropertyValue<bool>& getFillExtrusionVerticalGradient() const;
void setFillExtrusionVerticalGradient(const PropertyValue<bool>&);

View File

@@ -30,24 +30,30 @@ public:
void setFillAntialiasTransition(const TransitionOptions&);
TransitionOptions getFillAntialiasTransition() const;
static PropertyValue<float> getDefaultFillOpacity();
const PropertyValue<float>& getFillOpacity() const;
void setFillOpacity(const PropertyValue<float>&);
void setFillOpacityTransition(const TransitionOptions&);
TransitionOptions getFillOpacityTransition() const;
static PropertyValue<Color> getDefaultFillColor();
const PropertyValue<Color>& getFillColor() const;
void setFillColor(const PropertyValue<Color>&);
void setFillColorTransition(const TransitionOptions&);
TransitionOptions getFillColorTransition() const;
static PropertyValue<float> getDefaultFillOpacity();
const PropertyValue<float>& getFillOpacity() const;
void setFillOpacity(const PropertyValue<float>&);
void setFillOpacityTransition(const TransitionOptions&);
TransitionOptions getFillOpacityTransition() const;
static PropertyValue<Color> getDefaultFillOutlineColor();
const PropertyValue<Color>& getFillOutlineColor() const;
void setFillOutlineColor(const PropertyValue<Color>&);
void setFillOutlineColorTransition(const TransitionOptions&);
TransitionOptions getFillOutlineColorTransition() const;
static PropertyValue<std::string> getDefaultFillPattern();
const PropertyValue<std::string>& getFillPattern() const;
void setFillPattern(const PropertyValue<std::string>&);
void setFillPatternTransition(const TransitionOptions&);
TransitionOptions getFillPatternTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultFillTranslate();
const PropertyValue<std::array<float, 2>>& getFillTranslate() const;
void setFillTranslate(const PropertyValue<std::array<float, 2>>&);
@@ -60,12 +66,6 @@ public:
void setFillTranslateAnchorTransition(const TransitionOptions&);
TransitionOptions getFillTranslateAnchorTransition() const;
static PropertyValue<std::string> getDefaultFillPattern();
const PropertyValue<std::string>& getFillPattern() const;
void setFillPattern(const PropertyValue<std::string>&);
void setFillPatternTransition(const TransitionOptions&);
TransitionOptions getFillPatternTransition() const;
// Private implementation
class Impl;

View File

@@ -25,6 +25,24 @@ public:
// Paint properties
static ColorRampPropertyValue getDefaultHeatmapColor();
const ColorRampPropertyValue& getHeatmapColor() const;
void setHeatmapColor(const ColorRampPropertyValue&);
void setHeatmapColorTransition(const TransitionOptions&);
TransitionOptions getHeatmapColorTransition() const;
static PropertyValue<float> getDefaultHeatmapIntensity();
const PropertyValue<float>& getHeatmapIntensity() const;
void setHeatmapIntensity(const PropertyValue<float>&);
void setHeatmapIntensityTransition(const TransitionOptions&);
TransitionOptions getHeatmapIntensityTransition() const;
static PropertyValue<float> getDefaultHeatmapOpacity();
const PropertyValue<float>& getHeatmapOpacity() const;
void setHeatmapOpacity(const PropertyValue<float>&);
void setHeatmapOpacityTransition(const TransitionOptions&);
TransitionOptions getHeatmapOpacityTransition() const;
static PropertyValue<float> getDefaultHeatmapRadius();
const PropertyValue<float>& getHeatmapRadius() const;
void setHeatmapRadius(const PropertyValue<float>&);
@@ -37,24 +55,6 @@ public:
void setHeatmapWeightTransition(const TransitionOptions&);
TransitionOptions getHeatmapWeightTransition() const;
static PropertyValue<float> getDefaultHeatmapIntensity();
const PropertyValue<float>& getHeatmapIntensity() const;
void setHeatmapIntensity(const PropertyValue<float>&);
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<float> getDefaultHeatmapOpacity();
const PropertyValue<float>& getHeatmapOpacity() const;
void setHeatmapOpacity(const PropertyValue<float>&);
void setHeatmapOpacityTransition(const TransitionOptions&);
TransitionOptions getHeatmapOpacityTransition() const;
// Private implementation
class Impl;

View File

@@ -24,17 +24,11 @@ public:
// Paint properties
static PropertyValue<float> getDefaultHillshadeIlluminationDirection();
const PropertyValue<float>& getHillshadeIlluminationDirection() const;
void setHillshadeIlluminationDirection(const PropertyValue<float>&);
void setHillshadeIlluminationDirectionTransition(const TransitionOptions&);
TransitionOptions getHillshadeIlluminationDirectionTransition() const;
static PropertyValue<HillshadeIlluminationAnchorType> getDefaultHillshadeIlluminationAnchor();
const PropertyValue<HillshadeIlluminationAnchorType>& getHillshadeIlluminationAnchor() const;
void setHillshadeIlluminationAnchor(const PropertyValue<HillshadeIlluminationAnchorType>&);
void setHillshadeIlluminationAnchorTransition(const TransitionOptions&);
TransitionOptions getHillshadeIlluminationAnchorTransition() const;
static PropertyValue<Color> getDefaultHillshadeAccentColor();
const PropertyValue<Color>& getHillshadeAccentColor() const;
void setHillshadeAccentColor(const PropertyValue<Color>&);
void setHillshadeAccentColorTransition(const TransitionOptions&);
TransitionOptions getHillshadeAccentColorTransition() const;
static PropertyValue<float> getDefaultHillshadeExaggeration();
const PropertyValue<float>& getHillshadeExaggeration() const;
@@ -42,23 +36,29 @@ public:
void setHillshadeExaggerationTransition(const TransitionOptions&);
TransitionOptions getHillshadeExaggerationTransition() const;
static PropertyValue<Color> getDefaultHillshadeShadowColor();
const PropertyValue<Color>& getHillshadeShadowColor() const;
void setHillshadeShadowColor(const PropertyValue<Color>&);
void setHillshadeShadowColorTransition(const TransitionOptions&);
TransitionOptions getHillshadeShadowColorTransition() const;
static PropertyValue<Color> getDefaultHillshadeHighlightColor();
const PropertyValue<Color>& getHillshadeHighlightColor() const;
void setHillshadeHighlightColor(const PropertyValue<Color>&);
void setHillshadeHighlightColorTransition(const TransitionOptions&);
TransitionOptions getHillshadeHighlightColorTransition() const;
static PropertyValue<Color> getDefaultHillshadeAccentColor();
const PropertyValue<Color>& getHillshadeAccentColor() const;
void setHillshadeAccentColor(const PropertyValue<Color>&);
void setHillshadeAccentColorTransition(const TransitionOptions&);
TransitionOptions getHillshadeAccentColorTransition() const;
static PropertyValue<HillshadeIlluminationAnchorType> getDefaultHillshadeIlluminationAnchor();
const PropertyValue<HillshadeIlluminationAnchorType>& getHillshadeIlluminationAnchor() const;
void setHillshadeIlluminationAnchor(const PropertyValue<HillshadeIlluminationAnchorType>&);
void setHillshadeIlluminationAnchorTransition(const TransitionOptions&);
TransitionOptions getHillshadeIlluminationAnchorTransition() const;
static PropertyValue<float> getDefaultHillshadeIlluminationDirection();
const PropertyValue<float>& getHillshadeIlluminationDirection() const;
void setHillshadeIlluminationDirection(const PropertyValue<float>&);
void setHillshadeIlluminationDirectionTransition(const TransitionOptions&);
TransitionOptions getHillshadeIlluminationDirectionTransition() const;
static PropertyValue<Color> getDefaultHillshadeShadowColor();
const PropertyValue<Color>& getHillshadeShadowColor() const;
void setHillshadeShadowColor(const PropertyValue<Color>&);
void setHillshadeShadowColorTransition(const TransitionOptions&);
TransitionOptions getHillshadeShadowColorTransition() const;
// Private implementation

View File

@@ -45,11 +45,11 @@ public:
// Paint properties
static PropertyValue<float> getDefaultLineOpacity();
const PropertyValue<float>& getLineOpacity() const;
void setLineOpacity(const PropertyValue<float>&);
void setLineOpacityTransition(const TransitionOptions&);
TransitionOptions getLineOpacityTransition() const;
static PropertyValue<float> getDefaultLineBlur();
const PropertyValue<float>& getLineBlur() const;
void setLineBlur(const PropertyValue<float>&);
void setLineBlurTransition(const TransitionOptions&);
TransitionOptions getLineBlurTransition() const;
static PropertyValue<Color> getDefaultLineColor();
const PropertyValue<Color>& getLineColor() const;
@@ -57,6 +57,42 @@ public:
void setLineColorTransition(const TransitionOptions&);
TransitionOptions getLineColorTransition() const;
static PropertyValue<std::vector<float>> getDefaultLineDasharray();
const PropertyValue<std::vector<float>>& getLineDasharray() const;
void setLineDasharray(const PropertyValue<std::vector<float>>&);
void setLineDasharrayTransition(const TransitionOptions&);
TransitionOptions getLineDasharrayTransition() const;
static PropertyValue<float> getDefaultLineGapWidth();
const PropertyValue<float>& getLineGapWidth() const;
void setLineGapWidth(const PropertyValue<float>&);
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<float> getDefaultLineOffset();
const PropertyValue<float>& getLineOffset() const;
void setLineOffset(const PropertyValue<float>&);
void setLineOffsetTransition(const TransitionOptions&);
TransitionOptions getLineOffsetTransition() const;
static PropertyValue<float> getDefaultLineOpacity();
const PropertyValue<float>& getLineOpacity() const;
void setLineOpacity(const PropertyValue<float>&);
void setLineOpacityTransition(const TransitionOptions&);
TransitionOptions getLineOpacityTransition() const;
static PropertyValue<std::string> getDefaultLinePattern();
const PropertyValue<std::string>& getLinePattern() const;
void setLinePattern(const PropertyValue<std::string>&);
void setLinePatternTransition(const TransitionOptions&);
TransitionOptions getLinePatternTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultLineTranslate();
const PropertyValue<std::array<float, 2>>& getLineTranslate() const;
void setLineTranslate(const PropertyValue<std::array<float, 2>>&);
@@ -75,42 +111,6 @@ public:
void setLineWidthTransition(const TransitionOptions&);
TransitionOptions getLineWidthTransition() const;
static PropertyValue<float> getDefaultLineGapWidth();
const PropertyValue<float>& getLineGapWidth() const;
void setLineGapWidth(const PropertyValue<float>&);
void setLineGapWidthTransition(const TransitionOptions&);
TransitionOptions getLineGapWidthTransition() const;
static PropertyValue<float> getDefaultLineOffset();
const PropertyValue<float>& getLineOffset() const;
void setLineOffset(const PropertyValue<float>&);
void setLineOffsetTransition(const TransitionOptions&);
TransitionOptions getLineOffsetTransition() const;
static PropertyValue<float> getDefaultLineBlur();
const PropertyValue<float>& getLineBlur() const;
void setLineBlur(const PropertyValue<float>&);
void setLineBlurTransition(const TransitionOptions&);
TransitionOptions getLineBlurTransition() const;
static PropertyValue<std::vector<float>> getDefaultLineDasharray();
const PropertyValue<std::vector<float>>& getLineDasharray() const;
void setLineDasharray(const PropertyValue<std::vector<float>>&);
void setLineDasharrayTransition(const TransitionOptions&);
TransitionOptions getLineDasharrayTransition() const;
static PropertyValue<std::string> getDefaultLinePattern();
const PropertyValue<std::string>& getLinePattern() const;
void setLinePattern(const PropertyValue<std::string>&);
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;
// Private implementation
class Impl;

View File

@@ -24,17 +24,11 @@ public:
// Paint properties
static PropertyValue<float> getDefaultRasterOpacity();
const PropertyValue<float>& getRasterOpacity() const;
void setRasterOpacity(const PropertyValue<float>&);
void setRasterOpacityTransition(const TransitionOptions&);
TransitionOptions getRasterOpacityTransition() const;
static PropertyValue<float> getDefaultRasterHueRotate();
const PropertyValue<float>& getRasterHueRotate() const;
void setRasterHueRotate(const PropertyValue<float>&);
void setRasterHueRotateTransition(const TransitionOptions&);
TransitionOptions getRasterHueRotateTransition() const;
static PropertyValue<float> getDefaultRasterBrightnessMax();
const PropertyValue<float>& getRasterBrightnessMax() const;
void setRasterBrightnessMax(const PropertyValue<float>&);
void setRasterBrightnessMaxTransition(const TransitionOptions&);
TransitionOptions getRasterBrightnessMaxTransition() const;
static PropertyValue<float> getDefaultRasterBrightnessMin();
const PropertyValue<float>& getRasterBrightnessMin() const;
@@ -42,35 +36,41 @@ public:
void setRasterBrightnessMinTransition(const TransitionOptions&);
TransitionOptions getRasterBrightnessMinTransition() const;
static PropertyValue<float> getDefaultRasterBrightnessMax();
const PropertyValue<float>& getRasterBrightnessMax() const;
void setRasterBrightnessMax(const PropertyValue<float>&);
void setRasterBrightnessMaxTransition(const TransitionOptions&);
TransitionOptions getRasterBrightnessMaxTransition() const;
static PropertyValue<float> getDefaultRasterSaturation();
const PropertyValue<float>& getRasterSaturation() const;
void setRasterSaturation(const PropertyValue<float>&);
void setRasterSaturationTransition(const TransitionOptions&);
TransitionOptions getRasterSaturationTransition() const;
static PropertyValue<float> getDefaultRasterContrast();
const PropertyValue<float>& getRasterContrast() const;
void setRasterContrast(const PropertyValue<float>&);
void setRasterContrastTransition(const TransitionOptions&);
TransitionOptions getRasterContrastTransition() const;
static PropertyValue<float> getDefaultRasterFadeDuration();
const PropertyValue<float>& getRasterFadeDuration() const;
void setRasterFadeDuration(const PropertyValue<float>&);
void setRasterFadeDurationTransition(const TransitionOptions&);
TransitionOptions getRasterFadeDurationTransition() const;
static PropertyValue<float> getDefaultRasterHueRotate();
const PropertyValue<float>& getRasterHueRotate() const;
void setRasterHueRotate(const PropertyValue<float>&);
void setRasterHueRotateTransition(const TransitionOptions&);
TransitionOptions getRasterHueRotateTransition() const;
static PropertyValue<float> getDefaultRasterOpacity();
const PropertyValue<float>& getRasterOpacity() const;
void setRasterOpacity(const PropertyValue<float>&);
void setRasterOpacityTransition(const TransitionOptions&);
TransitionOptions getRasterOpacityTransition() const;
static PropertyValue<RasterResamplingType> getDefaultRasterResampling();
const PropertyValue<RasterResamplingType>& getRasterResampling() const;
void setRasterResampling(const PropertyValue<RasterResamplingType>&);
void setRasterResamplingTransition(const TransitionOptions&);
TransitionOptions getRasterResamplingTransition() const;
static PropertyValue<float> getDefaultRasterFadeDuration();
const PropertyValue<float>& getRasterFadeDuration() const;
void setRasterFadeDuration(const PropertyValue<float>&);
void setRasterFadeDurationTransition(const TransitionOptions&);
TransitionOptions getRasterFadeDurationTransition() const;
static PropertyValue<float> getDefaultRasterSaturation();
const PropertyValue<float>& getRasterSaturation() const;
void setRasterSaturation(const PropertyValue<float>&);
void setRasterSaturationTransition(const TransitionOptions&);
TransitionOptions getRasterSaturationTransition() const;
// Private implementation

View File

@@ -26,38 +26,46 @@ public:
// Layout properties
static PropertyValue<SymbolPlacementType> getDefaultSymbolPlacement();
const PropertyValue<SymbolPlacementType>& getSymbolPlacement() const;
void setSymbolPlacement(const PropertyValue<SymbolPlacementType>&);
static PropertyValue<float> getDefaultSymbolSpacing();
const PropertyValue<float>& getSymbolSpacing() const;
void setSymbolSpacing(const PropertyValue<float>&);
static PropertyValue<bool> getDefaultSymbolAvoidEdges();
const PropertyValue<bool>& getSymbolAvoidEdges() const;
void setSymbolAvoidEdges(const PropertyValue<bool>&);
static PropertyValue<float> getDefaultSymbolSortKey();
const PropertyValue<float>& getSymbolSortKey() const;
void setSymbolSortKey(const PropertyValue<float>&);
static PropertyValue<SymbolZOrderType> getDefaultSymbolZOrder();
const PropertyValue<SymbolZOrderType>& getSymbolZOrder() const;
void setSymbolZOrder(const PropertyValue<SymbolZOrderType>&);
static PropertyValue<bool> getDefaultIconAllowOverlap();
const PropertyValue<bool>& getIconAllowOverlap() const;
void setIconAllowOverlap(const PropertyValue<bool>&);
static PropertyValue<SymbolAnchorType> getDefaultIconAnchor();
const PropertyValue<SymbolAnchorType>& getIconAnchor() const;
void setIconAnchor(const PropertyValue<SymbolAnchorType>&);
static PropertyValue<bool> getDefaultIconIgnorePlacement();
const PropertyValue<bool>& getIconIgnorePlacement() const;
void setIconIgnorePlacement(const PropertyValue<bool>&);
static PropertyValue<std::string> getDefaultIconImage();
const PropertyValue<std::string>& getIconImage() const;
void setIconImage(const PropertyValue<std::string>&);
static PropertyValue<bool> getDefaultIconKeepUpright();
const PropertyValue<bool>& getIconKeepUpright() const;
void setIconKeepUpright(const PropertyValue<bool>&);
static PropertyValue<std::array<float, 2>> getDefaultIconOffset();
const PropertyValue<std::array<float, 2>>& getIconOffset() const;
void setIconOffset(const PropertyValue<std::array<float, 2>>&);
static PropertyValue<bool> getDefaultIconOptional();
const PropertyValue<bool>& getIconOptional() const;
void setIconOptional(const PropertyValue<bool>&);
static PropertyValue<float> getDefaultIconPadding();
const PropertyValue<float>& getIconPadding() const;
void setIconPadding(const PropertyValue<float>&);
static PropertyValue<AlignmentType> getDefaultIconPitchAlignment();
const PropertyValue<AlignmentType>& getIconPitchAlignment() const;
void setIconPitchAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<float> getDefaultIconRotate();
const PropertyValue<float>& getIconRotate() const;
void setIconRotate(const PropertyValue<float>&);
static PropertyValue<AlignmentType> getDefaultIconRotationAlignment();
const PropertyValue<AlignmentType>& getIconRotationAlignment() const;
void setIconRotationAlignment(const PropertyValue<AlignmentType>&);
@@ -74,41 +82,33 @@ public:
const PropertyValue<std::array<float, 4>>& getIconTextFitPadding() const;
void setIconTextFitPadding(const PropertyValue<std::array<float, 4>>&);
static PropertyValue<std::string> getDefaultIconImage();
const PropertyValue<std::string>& getIconImage() const;
void setIconImage(const PropertyValue<std::string>&);
static PropertyValue<bool> getDefaultSymbolAvoidEdges();
const PropertyValue<bool>& getSymbolAvoidEdges() const;
void setSymbolAvoidEdges(const PropertyValue<bool>&);
static PropertyValue<float> getDefaultIconRotate();
const PropertyValue<float>& getIconRotate() const;
void setIconRotate(const PropertyValue<float>&);
static PropertyValue<SymbolPlacementType> getDefaultSymbolPlacement();
const PropertyValue<SymbolPlacementType>& getSymbolPlacement() const;
void setSymbolPlacement(const PropertyValue<SymbolPlacementType>&);
static PropertyValue<float> getDefaultIconPadding();
const PropertyValue<float>& getIconPadding() const;
void setIconPadding(const PropertyValue<float>&);
static PropertyValue<float> getDefaultSymbolSortKey();
const PropertyValue<float>& getSymbolSortKey() const;
void setSymbolSortKey(const PropertyValue<float>&);
static PropertyValue<bool> getDefaultIconKeepUpright();
const PropertyValue<bool>& getIconKeepUpright() const;
void setIconKeepUpright(const PropertyValue<bool>&);
static PropertyValue<float> getDefaultSymbolSpacing();
const PropertyValue<float>& getSymbolSpacing() const;
void setSymbolSpacing(const PropertyValue<float>&);
static PropertyValue<std::array<float, 2>> getDefaultIconOffset();
const PropertyValue<std::array<float, 2>>& getIconOffset() const;
void setIconOffset(const PropertyValue<std::array<float, 2>>&);
static PropertyValue<SymbolZOrderType> getDefaultSymbolZOrder();
const PropertyValue<SymbolZOrderType>& getSymbolZOrder() const;
void setSymbolZOrder(const PropertyValue<SymbolZOrderType>&);
static PropertyValue<SymbolAnchorType> getDefaultIconAnchor();
const PropertyValue<SymbolAnchorType>& getIconAnchor() const;
void setIconAnchor(const PropertyValue<SymbolAnchorType>&);
static PropertyValue<bool> getDefaultTextAllowOverlap();
const PropertyValue<bool>& getTextAllowOverlap() const;
void setTextAllowOverlap(const PropertyValue<bool>&);
static PropertyValue<AlignmentType> getDefaultIconPitchAlignment();
const PropertyValue<AlignmentType>& getIconPitchAlignment() const;
void setIconPitchAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<AlignmentType> getDefaultTextPitchAlignment();
const PropertyValue<AlignmentType>& getTextPitchAlignment() const;
void setTextPitchAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<AlignmentType> getDefaultTextRotationAlignment();
const PropertyValue<AlignmentType>& getTextRotationAlignment() const;
void setTextRotationAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<SymbolAnchorType> getDefaultTextAnchor();
const PropertyValue<SymbolAnchorType>& getTextAnchor() const;
void setTextAnchor(const PropertyValue<SymbolAnchorType>&);
static PropertyValue<expression::Formatted> getDefaultTextField();
const PropertyValue<expression::Formatted>& getTextField() const;
@@ -118,81 +118,75 @@ public:
const PropertyValue<std::vector<std::string>>& getTextFont() const;
void setTextFont(const PropertyValue<std::vector<std::string>>&);
static PropertyValue<float> getDefaultTextSize();
const PropertyValue<float>& getTextSize() const;
void setTextSize(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextMaxWidth();
const PropertyValue<float>& getTextMaxWidth() const;
void setTextMaxWidth(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextLineHeight();
const PropertyValue<float>& getTextLineHeight() const;
void setTextLineHeight(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextLetterSpacing();
const PropertyValue<float>& getTextLetterSpacing() const;
void setTextLetterSpacing(const PropertyValue<float>&);
static PropertyValue<bool> getDefaultTextIgnorePlacement();
const PropertyValue<bool>& getTextIgnorePlacement() const;
void setTextIgnorePlacement(const PropertyValue<bool>&);
static PropertyValue<TextJustifyType> getDefaultTextJustify();
const PropertyValue<TextJustifyType>& getTextJustify() const;
void setTextJustify(const PropertyValue<TextJustifyType>&);
static PropertyValue<float> getDefaultTextRadialOffset();
const PropertyValue<float>& getTextRadialOffset() const;
void setTextRadialOffset(const PropertyValue<float>&);
static PropertyValue<bool> getDefaultTextKeepUpright();
const PropertyValue<bool>& getTextKeepUpright() const;
void setTextKeepUpright(const PropertyValue<bool>&);
static PropertyValue<std::vector<TextVariableAnchorType>> getDefaultTextVariableAnchor();
const PropertyValue<std::vector<TextVariableAnchorType>>& getTextVariableAnchor() const;
void setTextVariableAnchor(const PropertyValue<std::vector<TextVariableAnchorType>>&);
static PropertyValue<float> getDefaultTextLetterSpacing();
const PropertyValue<float>& getTextLetterSpacing() const;
void setTextLetterSpacing(const PropertyValue<float>&);
static PropertyValue<SymbolAnchorType> getDefaultTextAnchor();
const PropertyValue<SymbolAnchorType>& getTextAnchor() const;
void setTextAnchor(const PropertyValue<SymbolAnchorType>&);
static PropertyValue<float> getDefaultTextLineHeight();
const PropertyValue<float>& getTextLineHeight() const;
void setTextLineHeight(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextMaxAngle();
const PropertyValue<float>& getTextMaxAngle() const;
void setTextMaxAngle(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextRotate();
const PropertyValue<float>& getTextRotate() const;
void setTextRotate(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextPadding();
const PropertyValue<float>& getTextPadding() const;
void setTextPadding(const PropertyValue<float>&);
static PropertyValue<bool> getDefaultTextKeepUpright();
const PropertyValue<bool>& getTextKeepUpright() const;
void setTextKeepUpright(const PropertyValue<bool>&);
static PropertyValue<TextTransformType> getDefaultTextTransform();
const PropertyValue<TextTransformType>& getTextTransform() const;
void setTextTransform(const PropertyValue<TextTransformType>&);
static PropertyValue<float> getDefaultTextMaxWidth();
const PropertyValue<float>& getTextMaxWidth() const;
void setTextMaxWidth(const PropertyValue<float>&);
static PropertyValue<std::array<float, 2>> getDefaultTextOffset();
const PropertyValue<std::array<float, 2>>& getTextOffset() const;
void setTextOffset(const PropertyValue<std::array<float, 2>>&);
static PropertyValue<bool> getDefaultTextAllowOverlap();
const PropertyValue<bool>& getTextAllowOverlap() const;
void setTextAllowOverlap(const PropertyValue<bool>&);
static PropertyValue<bool> getDefaultTextIgnorePlacement();
const PropertyValue<bool>& getTextIgnorePlacement() const;
void setTextIgnorePlacement(const PropertyValue<bool>&);
static PropertyValue<bool> getDefaultTextOptional();
const PropertyValue<bool>& getTextOptional() const;
void setTextOptional(const PropertyValue<bool>&);
// Paint properties
static PropertyValue<float> getDefaultTextPadding();
const PropertyValue<float>& getTextPadding() const;
void setTextPadding(const PropertyValue<float>&);
static PropertyValue<float> getDefaultIconOpacity();
const PropertyValue<float>& getIconOpacity() const;
void setIconOpacity(const PropertyValue<float>&);
void setIconOpacityTransition(const TransitionOptions&);
TransitionOptions getIconOpacityTransition() const;
static PropertyValue<AlignmentType> getDefaultTextPitchAlignment();
const PropertyValue<AlignmentType>& getTextPitchAlignment() const;
void setTextPitchAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<float> getDefaultTextRadialOffset();
const PropertyValue<float>& getTextRadialOffset() const;
void setTextRadialOffset(const PropertyValue<float>&);
static PropertyValue<float> getDefaultTextRotate();
const PropertyValue<float>& getTextRotate() const;
void setTextRotate(const PropertyValue<float>&);
static PropertyValue<AlignmentType> getDefaultTextRotationAlignment();
const PropertyValue<AlignmentType>& getTextRotationAlignment() const;
void setTextRotationAlignment(const PropertyValue<AlignmentType>&);
static PropertyValue<float> getDefaultTextSize();
const PropertyValue<float>& getTextSize() const;
void setTextSize(const PropertyValue<float>&);
static PropertyValue<TextTransformType> getDefaultTextTransform();
const PropertyValue<TextTransformType>& getTextTransform() const;
void setTextTransform(const PropertyValue<TextTransformType>&);
static PropertyValue<std::vector<TextVariableAnchorType>> getDefaultTextVariableAnchor();
const PropertyValue<std::vector<TextVariableAnchorType>>& getTextVariableAnchor() const;
void setTextVariableAnchor(const PropertyValue<std::vector<TextVariableAnchorType>>&);
// Paint properties
static PropertyValue<Color> getDefaultIconColor();
const PropertyValue<Color>& getIconColor() const;
@@ -200,6 +194,12 @@ public:
void setIconColorTransition(const TransitionOptions&);
TransitionOptions getIconColorTransition() const;
static PropertyValue<float> getDefaultIconHaloBlur();
const PropertyValue<float>& getIconHaloBlur() const;
void setIconHaloBlur(const PropertyValue<float>&);
void setIconHaloBlurTransition(const TransitionOptions&);
TransitionOptions getIconHaloBlurTransition() const;
static PropertyValue<Color> getDefaultIconHaloColor();
const PropertyValue<Color>& getIconHaloColor() const;
void setIconHaloColor(const PropertyValue<Color>&);
@@ -212,11 +212,11 @@ public:
void setIconHaloWidthTransition(const TransitionOptions&);
TransitionOptions getIconHaloWidthTransition() const;
static PropertyValue<float> getDefaultIconHaloBlur();
const PropertyValue<float>& getIconHaloBlur() const;
void setIconHaloBlur(const PropertyValue<float>&);
void setIconHaloBlurTransition(const TransitionOptions&);
TransitionOptions getIconHaloBlurTransition() const;
static PropertyValue<float> getDefaultIconOpacity();
const PropertyValue<float>& getIconOpacity() const;
void setIconOpacity(const PropertyValue<float>&);
void setIconOpacityTransition(const TransitionOptions&);
TransitionOptions getIconOpacityTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultIconTranslate();
const PropertyValue<std::array<float, 2>>& getIconTranslate() const;
@@ -230,18 +230,18 @@ public:
void setIconTranslateAnchorTransition(const TransitionOptions&);
TransitionOptions getIconTranslateAnchorTransition() const;
static PropertyValue<float> getDefaultTextOpacity();
const PropertyValue<float>& getTextOpacity() const;
void setTextOpacity(const PropertyValue<float>&);
void setTextOpacityTransition(const TransitionOptions&);
TransitionOptions getTextOpacityTransition() const;
static PropertyValue<Color> getDefaultTextColor();
const PropertyValue<Color>& getTextColor() const;
void setTextColor(const PropertyValue<Color>&);
void setTextColorTransition(const TransitionOptions&);
TransitionOptions getTextColorTransition() const;
static PropertyValue<float> getDefaultTextHaloBlur();
const PropertyValue<float>& getTextHaloBlur() const;
void setTextHaloBlur(const PropertyValue<float>&);
void setTextHaloBlurTransition(const TransitionOptions&);
TransitionOptions getTextHaloBlurTransition() const;
static PropertyValue<Color> getDefaultTextHaloColor();
const PropertyValue<Color>& getTextHaloColor() const;
void setTextHaloColor(const PropertyValue<Color>&);
@@ -254,11 +254,11 @@ public:
void setTextHaloWidthTransition(const TransitionOptions&);
TransitionOptions getTextHaloWidthTransition() const;
static PropertyValue<float> getDefaultTextHaloBlur();
const PropertyValue<float>& getTextHaloBlur() const;
void setTextHaloBlur(const PropertyValue<float>&);
void setTextHaloBlurTransition(const TransitionOptions&);
TransitionOptions getTextHaloBlurTransition() const;
static PropertyValue<float> getDefaultTextOpacity();
const PropertyValue<float>& getTextOpacity() const;
void setTextOpacity(const PropertyValue<float>&);
void setTextOpacityTransition(const TransitionOptions&);
TransitionOptions getTextOpacityTransition() const;
static PropertyValue<std::array<float, 2>> getDefaultTextTranslate();
const PropertyValue<std::array<float, 2>>& getTextTranslate() const;

View File

@@ -23,12 +23,6 @@ public:
void setAnchorTransition(const TransitionOptions&);
TransitionOptions getAnchorTransition() const;
static Position getDefaultPosition();
PropertyValue<Position> getPosition() const;
void setPosition(PropertyValue<Position>);
void setPositionTransition(const TransitionOptions&);
TransitionOptions getPositionTransition() const;
static Color getDefaultColor();
PropertyValue<Color> getColor() const;
void setColor(PropertyValue<Color>);
@@ -41,6 +35,12 @@ public:
void setIntensityTransition(const TransitionOptions&);
TransitionOptions getIntensityTransition() const;
static Position getDefaultPosition();
PropertyValue<Position> getPosition() const;
void setPosition(PropertyValue<Position>);
void setPositionTransition(const TransitionOptions&);
TransitionOptions getPositionTransition() const;
class Impl;
Immutable<Impl> impl;
Mutable<Impl> mutableImpl() const;

View File

@@ -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}));

View File

@@ -90,33 +90,6 @@ TransitionOptions BackgroundLayer::getBackgroundColorTransition() const {
return impl().paint.template get<BackgroundColor>().options;
}
PropertyValue<std::string> BackgroundLayer::getDefaultBackgroundPattern() {
return { "" };
}
const PropertyValue<std::string>& BackgroundLayer::getBackgroundPattern() const {
return impl().paint.template get<BackgroundPattern>().value;
}
void BackgroundLayer::setBackgroundPattern(const PropertyValue<std::string>& value) {
if (value == getBackgroundPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<BackgroundPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void BackgroundLayer::setBackgroundPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<BackgroundPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions BackgroundLayer::getBackgroundPatternTransition() const {
return impl().paint.template get<BackgroundPattern>().options;
}
PropertyValue<float> BackgroundLayer::getDefaultBackgroundOpacity() {
return { 1 };
}
@@ -144,25 +117,52 @@ TransitionOptions BackgroundLayer::getBackgroundOpacityTransition() const {
return impl().paint.template get<BackgroundOpacity>().options;
}
PropertyValue<std::string> BackgroundLayer::getDefaultBackgroundPattern() {
return { "" };
}
const PropertyValue<std::string>& BackgroundLayer::getBackgroundPattern() const {
return impl().paint.template get<BackgroundPattern>().value;
}
void BackgroundLayer::setBackgroundPattern(const PropertyValue<std::string>& value) {
if (value == getBackgroundPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<BackgroundPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void BackgroundLayer::setBackgroundPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<BackgroundPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions BackgroundLayer::getBackgroundPatternTransition() const {
return impl().paint.template get<BackgroundPattern>().options;
}
using namespace conversion;
optional<Error> 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<mapbox::eternal::string, uint8_t>({
{ "background-color", static_cast<uint8_t>(Property::BackgroundColor) },
{ "background-pattern", static_cast<uint8_t>(Property::BackgroundPattern) },
{ "background-opacity", static_cast<uint8_t>(Property::BackgroundOpacity) },
{ "background-pattern", static_cast<uint8_t>(Property::BackgroundPattern) },
{ "background-color-transition", static_cast<uint8_t>(Property::BackgroundColorTransition) },
{ "background-pattern-transition", static_cast<uint8_t>(Property::BackgroundPatternTransition) },
{ "background-opacity-transition", static_cast<uint8_t>(Property::BackgroundOpacityTransition) }
{ "background-opacity-transition", static_cast<uint8_t>(Property::BackgroundOpacityTransition) },
{ "background-pattern-transition", static_cast<uint8_t>(Property::BackgroundPatternTransition) }
});
const auto it = properties.find(name.c_str());
@@ -185,18 +185,6 @@ optional<Error> BackgroundLayer::setPaintProperty(const std::string& name, const
}
if (property == Property::BackgroundPattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, false, false);
if (!typedValue) {
return error;
}
setBackgroundPattern(*typedValue);
return nullopt;
}
if (property == Property::BackgroundOpacity) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false);
@@ -209,6 +197,18 @@ optional<Error> BackgroundLayer::setPaintProperty(const std::string& name, const
}
if (property == Property::BackgroundPattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, false, false);
if (!typedValue) {
return error;
}
setBackgroundPattern(*typedValue);
return nullopt;
}
Error error;
optional<TransitionOptions> transition = convert<TransitionOptions>(value, error);
@@ -221,13 +221,13 @@ optional<Error> 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;
}

View File

@@ -18,18 +18,18 @@ struct BackgroundColor : PaintProperty<Color> {
static Color defaultValue() { return Color::black(); }
};
struct BackgroundPattern : CrossFadedPaintProperty<std::string> {
static std::string defaultValue() { return ""; }
};
struct BackgroundOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct BackgroundPattern : CrossFadedPaintProperty<std::string> {
static std::string defaultValue() { return ""; }
};
class BackgroundPaintProperties : public Properties<
BackgroundColor,
BackgroundPattern,
BackgroundOpacity
BackgroundOpacity,
BackgroundPattern
> {};
class BackgroundLayerProperties final : public LayerProperties {

View File

@@ -63,31 +63,31 @@ void CircleLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffe
// Paint properties
PropertyValue<float> CircleLayer::getDefaultCircleRadius() {
return { 5 };
PropertyValue<float> CircleLayer::getDefaultCircleBlur() {
return { 0 };
}
const PropertyValue<float>& CircleLayer::getCircleRadius() const {
return impl().paint.template get<CircleRadius>().value;
const PropertyValue<float>& CircleLayer::getCircleBlur() const {
return impl().paint.template get<CircleBlur>().value;
}
void CircleLayer::setCircleRadius(const PropertyValue<float>& value) {
if (value == getCircleRadius())
void CircleLayer::setCircleBlur(const PropertyValue<float>& value) {
if (value == getCircleBlur())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleRadius>().value = value;
impl_->paint.template get<CircleBlur>().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<CircleRadius>().options = options;
impl_->paint.template get<CircleBlur>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleRadiusTransition() const {
return impl().paint.template get<CircleRadius>().options;
TransitionOptions CircleLayer::getCircleBlurTransition() const {
return impl().paint.template get<CircleBlur>().options;
}
PropertyValue<Color> CircleLayer::getDefaultCircleColor() {
@@ -117,33 +117,6 @@ TransitionOptions CircleLayer::getCircleColorTransition() const {
return impl().paint.template get<CircleColor>().options;
}
PropertyValue<float> CircleLayer::getDefaultCircleBlur() {
return { 0 };
}
const PropertyValue<float>& CircleLayer::getCircleBlur() const {
return impl().paint.template get<CircleBlur>().value;
}
void CircleLayer::setCircleBlur(const PropertyValue<float>& value) {
if (value == getCircleBlur())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleBlur>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleBlurTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleBlur>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleBlurTransition() const {
return impl().paint.template get<CircleBlur>().options;
}
PropertyValue<float> CircleLayer::getDefaultCircleOpacity() {
return { 1 };
}
@@ -171,87 +144,6 @@ TransitionOptions CircleLayer::getCircleOpacityTransition() const {
return impl().paint.template get<CircleOpacity>().options;
}
PropertyValue<std::array<float, 2>> CircleLayer::getDefaultCircleTranslate() {
return { {{ 0, 0 }} };
}
const PropertyValue<std::array<float, 2>>& CircleLayer::getCircleTranslate() const {
return impl().paint.template get<CircleTranslate>().value;
}
void CircleLayer::setCircleTranslate(const PropertyValue<std::array<float, 2>>& value) {
if (value == getCircleTranslate())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslate>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleTranslateTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslate>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleTranslateTransition() const {
return impl().paint.template get<CircleTranslate>().options;
}
PropertyValue<TranslateAnchorType> CircleLayer::getDefaultCircleTranslateAnchor() {
return { TranslateAnchorType::Map };
}
const PropertyValue<TranslateAnchorType>& CircleLayer::getCircleTranslateAnchor() const {
return impl().paint.template get<CircleTranslateAnchor>().value;
}
void CircleLayer::setCircleTranslateAnchor(const PropertyValue<TranslateAnchorType>& value) {
if (value == getCircleTranslateAnchor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslateAnchor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleTranslateAnchorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslateAnchor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleTranslateAnchorTransition() const {
return impl().paint.template get<CircleTranslateAnchor>().options;
}
PropertyValue<CirclePitchScaleType> CircleLayer::getDefaultCirclePitchScale() {
return { CirclePitchScaleType::Map };
}
const PropertyValue<CirclePitchScaleType>& CircleLayer::getCirclePitchScale() const {
return impl().paint.template get<CirclePitchScale>().value;
}
void CircleLayer::setCirclePitchScale(const PropertyValue<CirclePitchScaleType>& value) {
if (value == getCirclePitchScale())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CirclePitchScale>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCirclePitchScaleTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CirclePitchScale>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCirclePitchScaleTransition() const {
return impl().paint.template get<CirclePitchScale>().options;
}
PropertyValue<AlignmentType> CircleLayer::getDefaultCirclePitchAlignment() {
return { AlignmentType::Viewport };
}
@@ -279,31 +171,58 @@ TransitionOptions CircleLayer::getCirclePitchAlignmentTransition() const {
return impl().paint.template get<CirclePitchAlignment>().options;
}
PropertyValue<float> CircleLayer::getDefaultCircleStrokeWidth() {
return { 0 };
PropertyValue<CirclePitchScaleType> CircleLayer::getDefaultCirclePitchScale() {
return { CirclePitchScaleType::Map };
}
const PropertyValue<float>& CircleLayer::getCircleStrokeWidth() const {
return impl().paint.template get<CircleStrokeWidth>().value;
const PropertyValue<CirclePitchScaleType>& CircleLayer::getCirclePitchScale() const {
return impl().paint.template get<CirclePitchScale>().value;
}
void CircleLayer::setCircleStrokeWidth(const PropertyValue<float>& value) {
if (value == getCircleStrokeWidth())
void CircleLayer::setCirclePitchScale(const PropertyValue<CirclePitchScaleType>& value) {
if (value == getCirclePitchScale())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleStrokeWidth>().value = value;
impl_->paint.template get<CirclePitchScale>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleStrokeWidthTransition(const TransitionOptions& options) {
void CircleLayer::setCirclePitchScaleTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleStrokeWidth>().options = options;
impl_->paint.template get<CirclePitchScale>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleStrokeWidthTransition() const {
return impl().paint.template get<CircleStrokeWidth>().options;
TransitionOptions CircleLayer::getCirclePitchScaleTransition() const {
return impl().paint.template get<CirclePitchScale>().options;
}
PropertyValue<float> CircleLayer::getDefaultCircleRadius() {
return { 5 };
}
const PropertyValue<float>& CircleLayer::getCircleRadius() const {
return impl().paint.template get<CircleRadius>().value;
}
void CircleLayer::setCircleRadius(const PropertyValue<float>& value) {
if (value == getCircleRadius())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleRadius>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleRadiusTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleRadius>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleRadiusTransition() const {
return impl().paint.template get<CircleRadius>().options;
}
PropertyValue<Color> CircleLayer::getDefaultCircleStrokeColor() {
@@ -360,57 +279,138 @@ TransitionOptions CircleLayer::getCircleStrokeOpacityTransition() const {
return impl().paint.template get<CircleStrokeOpacity>().options;
}
PropertyValue<float> CircleLayer::getDefaultCircleStrokeWidth() {
return { 0 };
}
const PropertyValue<float>& CircleLayer::getCircleStrokeWidth() const {
return impl().paint.template get<CircleStrokeWidth>().value;
}
void CircleLayer::setCircleStrokeWidth(const PropertyValue<float>& value) {
if (value == getCircleStrokeWidth())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleStrokeWidth>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleStrokeWidthTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleStrokeWidth>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleStrokeWidthTransition() const {
return impl().paint.template get<CircleStrokeWidth>().options;
}
PropertyValue<std::array<float, 2>> CircleLayer::getDefaultCircleTranslate() {
return { {{ 0, 0 }} };
}
const PropertyValue<std::array<float, 2>>& CircleLayer::getCircleTranslate() const {
return impl().paint.template get<CircleTranslate>().value;
}
void CircleLayer::setCircleTranslate(const PropertyValue<std::array<float, 2>>& value) {
if (value == getCircleTranslate())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslate>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleTranslateTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslate>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleTranslateTransition() const {
return impl().paint.template get<CircleTranslate>().options;
}
PropertyValue<TranslateAnchorType> CircleLayer::getDefaultCircleTranslateAnchor() {
return { TranslateAnchorType::Map };
}
const PropertyValue<TranslateAnchorType>& CircleLayer::getCircleTranslateAnchor() const {
return impl().paint.template get<CircleTranslateAnchor>().value;
}
void CircleLayer::setCircleTranslateAnchor(const PropertyValue<TranslateAnchorType>& value) {
if (value == getCircleTranslateAnchor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslateAnchor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void CircleLayer::setCircleTranslateAnchorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<CircleTranslateAnchor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions CircleLayer::getCircleTranslateAnchorTransition() const {
return impl().paint.template get<CircleTranslateAnchor>().options;
}
using namespace conversion;
optional<Error> 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<mapbox::eternal::string, uint8_t>({
{ "circle-radius", static_cast<uint8_t>(Property::CircleRadius) },
{ "circle-color", static_cast<uint8_t>(Property::CircleColor) },
{ "circle-blur", static_cast<uint8_t>(Property::CircleBlur) },
{ "circle-color", static_cast<uint8_t>(Property::CircleColor) },
{ "circle-opacity", static_cast<uint8_t>(Property::CircleOpacity) },
{ "circle-translate", static_cast<uint8_t>(Property::CircleTranslate) },
{ "circle-translate-anchor", static_cast<uint8_t>(Property::CircleTranslateAnchor) },
{ "circle-pitch-scale", static_cast<uint8_t>(Property::CirclePitchScale) },
{ "circle-pitch-alignment", static_cast<uint8_t>(Property::CirclePitchAlignment) },
{ "circle-stroke-width", static_cast<uint8_t>(Property::CircleStrokeWidth) },
{ "circle-pitch-scale", static_cast<uint8_t>(Property::CirclePitchScale) },
{ "circle-radius", static_cast<uint8_t>(Property::CircleRadius) },
{ "circle-stroke-color", static_cast<uint8_t>(Property::CircleStrokeColor) },
{ "circle-stroke-opacity", static_cast<uint8_t>(Property::CircleStrokeOpacity) },
{ "circle-radius-transition", static_cast<uint8_t>(Property::CircleRadiusTransition) },
{ "circle-color-transition", static_cast<uint8_t>(Property::CircleColorTransition) },
{ "circle-stroke-width", static_cast<uint8_t>(Property::CircleStrokeWidth) },
{ "circle-translate", static_cast<uint8_t>(Property::CircleTranslate) },
{ "circle-translate-anchor", static_cast<uint8_t>(Property::CircleTranslateAnchor) },
{ "circle-blur-transition", static_cast<uint8_t>(Property::CircleBlurTransition) },
{ "circle-color-transition", static_cast<uint8_t>(Property::CircleColorTransition) },
{ "circle-opacity-transition", static_cast<uint8_t>(Property::CircleOpacityTransition) },
{ "circle-translate-transition", static_cast<uint8_t>(Property::CircleTranslateTransition) },
{ "circle-translate-anchor-transition", static_cast<uint8_t>(Property::CircleTranslateAnchorTransition) },
{ "circle-pitch-scale-transition", static_cast<uint8_t>(Property::CirclePitchScaleTransition) },
{ "circle-pitch-alignment-transition", static_cast<uint8_t>(Property::CirclePitchAlignmentTransition) },
{ "circle-stroke-width-transition", static_cast<uint8_t>(Property::CircleStrokeWidthTransition) },
{ "circle-pitch-scale-transition", static_cast<uint8_t>(Property::CirclePitchScaleTransition) },
{ "circle-radius-transition", static_cast<uint8_t>(Property::CircleRadiusTransition) },
{ "circle-stroke-color-transition", static_cast<uint8_t>(Property::CircleStrokeColorTransition) },
{ "circle-stroke-opacity-transition", static_cast<uint8_t>(Property::CircleStrokeOpacityTransition) }
{ "circle-stroke-opacity-transition", static_cast<uint8_t>(Property::CircleStrokeOpacityTransition) },
{ "circle-stroke-width-transition", static_cast<uint8_t>(Property::CircleStrokeWidthTransition) },
{ "circle-translate-transition", static_cast<uint8_t>(Property::CircleTranslateTransition) },
{ "circle-translate-anchor-transition", static_cast<uint8_t>(Property::CircleTranslateAnchorTransition) }
});
const auto it = properties.find(name.c_str());
@@ -421,18 +421,13 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
auto property = static_cast<Property>(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<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(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<Error> 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<Error> 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,6 +474,30 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
}
if (property == Property::CirclePitchAlignment) {
Error error;
optional<PropertyValue<AlignmentType>> typedValue = convert<PropertyValue<AlignmentType>>(value, error, false, false);
if (!typedValue) {
return error;
}
setCirclePitchAlignment(*typedValue);
return nullopt;
}
if (property == Property::CirclePitchScale) {
Error error;
optional<PropertyValue<CirclePitchScaleType>> typedValue = convert<PropertyValue<CirclePitchScaleType>>(value, error, false, false);
if (!typedValue) {
return error;
}
setCirclePitchScale(*typedValue);
return nullopt;
}
if (property == Property::CircleTranslate) {
Error error;
optional<PropertyValue<std::array<float, 2>>> typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false);
@@ -498,30 +522,6 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
}
if (property == Property::CirclePitchScale) {
Error error;
optional<PropertyValue<CirclePitchScaleType>> typedValue = convert<PropertyValue<CirclePitchScaleType>>(value, error, false, false);
if (!typedValue) {
return error;
}
setCirclePitchScale(*typedValue);
return nullopt;
}
if (property == Property::CirclePitchAlignment) {
Error error;
optional<PropertyValue<AlignmentType>> typedValue = convert<PropertyValue<AlignmentType>>(value, error, false, false);
if (!typedValue) {
return error;
}
setCirclePitchAlignment(*typedValue);
return nullopt;
}
Error error;
optional<TransitionOptions> transition = convert<TransitionOptions>(value, error);
@@ -529,8 +529,8 @@ optional<Error> 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,38 +539,23 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
return nullopt;
}
if (property == Property::CircleBlurTransition) {
setCircleBlurTransition(*transition);
return nullopt;
}
if (property == Property::CircleOpacityTransition) {
setCircleOpacityTransition(*transition);
return nullopt;
}
if (property == Property::CircleTranslateTransition) {
setCircleTranslateTransition(*transition);
return nullopt;
}
if (property == Property::CircleTranslateAnchorTransition) {
setCircleTranslateAnchorTransition(*transition);
return nullopt;
}
if (property == Property::CirclePitchScaleTransition) {
setCirclePitchScaleTransition(*transition);
return nullopt;
}
if (property == Property::CirclePitchAlignmentTransition) {
setCirclePitchAlignmentTransition(*transition);
return nullopt;
}
if (property == Property::CircleStrokeWidthTransition) {
setCircleStrokeWidthTransition(*transition);
if (property == Property::CirclePitchScaleTransition) {
setCirclePitchScaleTransition(*transition);
return nullopt;
}
if (property == Property::CircleRadiusTransition) {
setCircleRadiusTransition(*transition);
return nullopt;
}
@@ -584,6 +569,21 @@ optional<Error> CircleLayer::setPaintProperty(const std::string& name, const Con
return nullopt;
}
if (property == Property::CircleStrokeWidthTransition) {
setCircleStrokeWidthTransition(*transition);
return nullopt;
}
if (property == Property::CircleTranslateTransition) {
setCircleTranslateTransition(*transition);
return nullopt;
}
if (property == Property::CircleTranslateAnchorTransition) {
setCircleTranslateAnchorTransition(*transition);
return nullopt;
}
return Error { "layer doesn't support this property" };
}

View File

@@ -14,40 +14,28 @@
namespace mbgl {
namespace style {
struct CircleRadius : DataDrivenPaintProperty<float, attributes::radius, uniforms::radius> {
static float defaultValue() { return 5; }
struct CircleBlur : DataDrivenPaintProperty<float, attributes::blur, uniforms::blur> {
static float defaultValue() { return 0; }
};
struct CircleColor : DataDrivenPaintProperty<Color, attributes::color, uniforms::color> {
static Color defaultValue() { return Color::black(); }
};
struct CircleBlur : DataDrivenPaintProperty<float, attributes::blur, uniforms::blur> {
static float defaultValue() { return 0; }
};
struct CircleOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct CircleTranslate : PaintProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
struct CircleTranslateAnchor : PaintProperty<TranslateAnchorType> {
static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; }
};
struct CirclePitchScale : PaintProperty<CirclePitchScaleType> {
static CirclePitchScaleType defaultValue() { return CirclePitchScaleType::Map; }
};
struct CirclePitchAlignment : PaintProperty<AlignmentType> {
static AlignmentType defaultValue() { return AlignmentType::Viewport; }
};
struct CircleStrokeWidth : DataDrivenPaintProperty<float, attributes::stroke_width, uniforms::stroke_width> {
static float defaultValue() { return 0; }
struct CirclePitchScale : PaintProperty<CirclePitchScaleType> {
static CirclePitchScaleType defaultValue() { return CirclePitchScaleType::Map; }
};
struct CircleRadius : DataDrivenPaintProperty<float, attributes::radius, uniforms::radius> {
static float defaultValue() { return 5; }
};
struct CircleStrokeColor : DataDrivenPaintProperty<Color, attributes::stroke_color, uniforms::stroke_color> {
@@ -58,18 +46,30 @@ struct CircleStrokeOpacity : DataDrivenPaintProperty<float, attributes::stroke_o
static float defaultValue() { return 1; }
};
struct CircleStrokeWidth : DataDrivenPaintProperty<float, attributes::stroke_width, uniforms::stroke_width> {
static float defaultValue() { return 0; }
};
struct CircleTranslate : PaintProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
struct CircleTranslateAnchor : PaintProperty<TranslateAnchorType> {
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 {

View File

@@ -63,31 +63,31 @@ void FillExtrusionLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::Stri
// Paint properties
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionOpacity() {
return { 1 };
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionBase() {
return { 0 };
}
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionOpacity() const {
return impl().paint.template get<FillExtrusionOpacity>().value;
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionBase() const {
return impl().paint.template get<FillExtrusionBase>().value;
}
void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue<float>& value) {
if (value == getFillExtrusionOpacity())
void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue<float>& value) {
if (value == getFillExtrusionBase())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionOpacity>().value = value;
impl_->paint.template get<FillExtrusionBase>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionOpacityTransition(const TransitionOptions& options) {
void FillExtrusionLayer::setFillExtrusionBaseTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionOpacity>().options = options;
impl_->paint.template get<FillExtrusionBase>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const {
return impl().paint.template get<FillExtrusionOpacity>().options;
TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const {
return impl().paint.template get<FillExtrusionBase>().options;
}
PropertyValue<Color> FillExtrusionLayer::getDefaultFillExtrusionColor() {
@@ -117,6 +117,87 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionColorTransition() const {
return impl().paint.template get<FillExtrusionColor>().options;
}
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionHeight() {
return { 0 };
}
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionHeight() const {
return impl().paint.template get<FillExtrusionHeight>().value;
}
void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue<float>& value) {
if (value == getFillExtrusionHeight())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionHeight>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionHeightTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionHeight>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const {
return impl().paint.template get<FillExtrusionHeight>().options;
}
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionOpacity() {
return { 1 };
}
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionOpacity() const {
return impl().paint.template get<FillExtrusionOpacity>().value;
}
void FillExtrusionLayer::setFillExtrusionOpacity(const PropertyValue<float>& value) {
if (value == getFillExtrusionOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionOpacityTransition() const {
return impl().paint.template get<FillExtrusionOpacity>().options;
}
PropertyValue<std::string> FillExtrusionLayer::getDefaultFillExtrusionPattern() {
return { "" };
}
const PropertyValue<std::string>& FillExtrusionLayer::getFillExtrusionPattern() const {
return impl().paint.template get<FillExtrusionPattern>().value;
}
void FillExtrusionLayer::setFillExtrusionPattern(const PropertyValue<std::string>& value) {
if (value == getFillExtrusionPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionPatternTransition() const {
return impl().paint.template get<FillExtrusionPattern>().options;
}
PropertyValue<std::array<float, 2>> FillExtrusionLayer::getDefaultFillExtrusionTranslate() {
return { {{ 0, 0 }} };
}
@@ -171,87 +252,6 @@ TransitionOptions FillExtrusionLayer::getFillExtrusionTranslateAnchorTransition(
return impl().paint.template get<FillExtrusionTranslateAnchor>().options;
}
PropertyValue<std::string> FillExtrusionLayer::getDefaultFillExtrusionPattern() {
return { "" };
}
const PropertyValue<std::string>& FillExtrusionLayer::getFillExtrusionPattern() const {
return impl().paint.template get<FillExtrusionPattern>().value;
}
void FillExtrusionLayer::setFillExtrusionPattern(const PropertyValue<std::string>& value) {
if (value == getFillExtrusionPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionPatternTransition() const {
return impl().paint.template get<FillExtrusionPattern>().options;
}
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionHeight() {
return { 0 };
}
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionHeight() const {
return impl().paint.template get<FillExtrusionHeight>().value;
}
void FillExtrusionLayer::setFillExtrusionHeight(const PropertyValue<float>& value) {
if (value == getFillExtrusionHeight())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionHeight>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionHeightTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionHeight>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionHeightTransition() const {
return impl().paint.template get<FillExtrusionHeight>().options;
}
PropertyValue<float> FillExtrusionLayer::getDefaultFillExtrusionBase() {
return { 0 };
}
const PropertyValue<float>& FillExtrusionLayer::getFillExtrusionBase() const {
return impl().paint.template get<FillExtrusionBase>().value;
}
void FillExtrusionLayer::setFillExtrusionBase(const PropertyValue<float>& value) {
if (value == getFillExtrusionBase())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionBase>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillExtrusionLayer::setFillExtrusionBaseTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillExtrusionBase>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillExtrusionLayer::getFillExtrusionBaseTransition() const {
return impl().paint.template get<FillExtrusionBase>().options;
}
PropertyValue<bool> FillExtrusionLayer::getDefaultFillExtrusionVerticalGradient() {
return { true };
}
@@ -283,40 +283,40 @@ using namespace conversion;
optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, const Convertible& value) {
enum class Property : uint8_t {
FillExtrusionOpacity,
FillExtrusionBase,
FillExtrusionColor,
FillExtrusionHeight,
FillExtrusionOpacity,
FillExtrusionPattern,
FillExtrusionTranslate,
FillExtrusionTranslateAnchor,
FillExtrusionPattern,
FillExtrusionHeight,
FillExtrusionBase,
FillExtrusionVerticalGradient,
FillExtrusionOpacityTransition,
FillExtrusionBaseTransition,
FillExtrusionColorTransition,
FillExtrusionHeightTransition,
FillExtrusionOpacityTransition,
FillExtrusionPatternTransition,
FillExtrusionTranslateTransition,
FillExtrusionTranslateAnchorTransition,
FillExtrusionPatternTransition,
FillExtrusionHeightTransition,
FillExtrusionBaseTransition,
FillExtrusionVerticalGradientTransition,
};
MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map<mapbox::eternal::string, uint8_t>({
{ "fill-extrusion-opacity", static_cast<uint8_t>(Property::FillExtrusionOpacity) },
{ "fill-extrusion-base", static_cast<uint8_t>(Property::FillExtrusionBase) },
{ "fill-extrusion-color", static_cast<uint8_t>(Property::FillExtrusionColor) },
{ "fill-extrusion-height", static_cast<uint8_t>(Property::FillExtrusionHeight) },
{ "fill-extrusion-opacity", static_cast<uint8_t>(Property::FillExtrusionOpacity) },
{ "fill-extrusion-pattern", static_cast<uint8_t>(Property::FillExtrusionPattern) },
{ "fill-extrusion-translate", static_cast<uint8_t>(Property::FillExtrusionTranslate) },
{ "fill-extrusion-translate-anchor", static_cast<uint8_t>(Property::FillExtrusionTranslateAnchor) },
{ "fill-extrusion-pattern", static_cast<uint8_t>(Property::FillExtrusionPattern) },
{ "fill-extrusion-height", static_cast<uint8_t>(Property::FillExtrusionHeight) },
{ "fill-extrusion-base", static_cast<uint8_t>(Property::FillExtrusionBase) },
{ "fill-extrusion-vertical-gradient", static_cast<uint8_t>(Property::FillExtrusionVerticalGradient) },
{ "fill-extrusion-opacity-transition", static_cast<uint8_t>(Property::FillExtrusionOpacityTransition) },
{ "fill-extrusion-base-transition", static_cast<uint8_t>(Property::FillExtrusionBaseTransition) },
{ "fill-extrusion-color-transition", static_cast<uint8_t>(Property::FillExtrusionColorTransition) },
{ "fill-extrusion-height-transition", static_cast<uint8_t>(Property::FillExtrusionHeightTransition) },
{ "fill-extrusion-opacity-transition", static_cast<uint8_t>(Property::FillExtrusionOpacityTransition) },
{ "fill-extrusion-pattern-transition", static_cast<uint8_t>(Property::FillExtrusionPatternTransition) },
{ "fill-extrusion-translate-transition", static_cast<uint8_t>(Property::FillExtrusionTranslateTransition) },
{ "fill-extrusion-translate-anchor-transition", static_cast<uint8_t>(Property::FillExtrusionTranslateAnchorTransition) },
{ "fill-extrusion-pattern-transition", static_cast<uint8_t>(Property::FillExtrusionPatternTransition) },
{ "fill-extrusion-height-transition", static_cast<uint8_t>(Property::FillExtrusionHeightTransition) },
{ "fill-extrusion-base-transition", static_cast<uint8_t>(Property::FillExtrusionBaseTransition) },
{ "fill-extrusion-vertical-gradient-transition", static_cast<uint8_t>(Property::FillExtrusionVerticalGradientTransition) }
});
@@ -328,6 +328,37 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
auto property = static_cast<Property>(it->second);
if (property == Property::FillExtrusionBase || property == Property::FillExtrusionHeight) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false);
if (!typedValue) {
return error;
}
if (property == Property::FillExtrusionBase) {
setFillExtrusionBase(*typedValue);
return nullopt;
}
if (property == Property::FillExtrusionHeight) {
setFillExtrusionHeight(*typedValue);
return nullopt;
}
}
if (property == Property::FillExtrusionColor) {
Error error;
optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillExtrusionColor(*typedValue);
return nullopt;
}
if (property == Property::FillExtrusionOpacity) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false);
@@ -340,14 +371,14 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
}
if (property == Property::FillExtrusionColor) {
if (property == Property::FillExtrusionPattern) {
Error error;
optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, true, false);
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillExtrusionColor(*typedValue);
setFillExtrusionPattern(*typedValue);
return nullopt;
}
@@ -376,37 +407,6 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
}
if (property == Property::FillExtrusionPattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillExtrusionPattern(*typedValue);
return nullopt;
}
if (property == Property::FillExtrusionHeight || property == Property::FillExtrusionBase) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false);
if (!typedValue) {
return error;
}
if (property == Property::FillExtrusionHeight) {
setFillExtrusionHeight(*typedValue);
return nullopt;
}
if (property == Property::FillExtrusionBase) {
setFillExtrusionBase(*typedValue);
return nullopt;
}
}
if (property == Property::FillExtrusionVerticalGradient) {
Error error;
optional<PropertyValue<bool>> typedValue = convert<PropertyValue<bool>>(value, error, false, false);
@@ -426,8 +426,8 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
return error;
}
if (property == Property::FillExtrusionOpacityTransition) {
setFillExtrusionOpacityTransition(*transition);
if (property == Property::FillExtrusionBaseTransition) {
setFillExtrusionBaseTransition(*transition);
return nullopt;
}
@@ -436,6 +436,21 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
return nullopt;
}
if (property == Property::FillExtrusionHeightTransition) {
setFillExtrusionHeightTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionOpacityTransition) {
setFillExtrusionOpacityTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionPatternTransition) {
setFillExtrusionPatternTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionTranslateTransition) {
setFillExtrusionTranslateTransition(*transition);
return nullopt;
@@ -446,21 +461,6 @@ optional<Error> FillExtrusionLayer::setPaintProperty(const std::string& name, co
return nullopt;
}
if (property == Property::FillExtrusionPatternTransition) {
setFillExtrusionPatternTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionHeightTransition) {
setFillExtrusionHeightTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionBaseTransition) {
setFillExtrusionBaseTransition(*transition);
return nullopt;
}
if (property == Property::FillExtrusionVerticalGradientTransition) {
setFillExtrusionVerticalGradientTransition(*transition);
return nullopt;

View File

@@ -14,14 +14,26 @@
namespace mbgl {
namespace style {
struct FillExtrusionOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
struct FillExtrusionBase : DataDrivenPaintProperty<float, attributes::base, uniforms::base> {
static float defaultValue() { return 0; }
};
struct FillExtrusionColor : DataDrivenPaintProperty<Color, attributes::color, uniforms::color> {
static Color defaultValue() { return Color::black(); }
};
struct FillExtrusionHeight : DataDrivenPaintProperty<float, attributes::height, uniforms::height> {
static float defaultValue() { return 0; }
};
struct FillExtrusionOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct FillExtrusionPattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
struct FillExtrusionTranslate : PaintProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
@@ -30,30 +42,18 @@ struct FillExtrusionTranslateAnchor : PaintProperty<TranslateAnchorType> {
static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; }
};
struct FillExtrusionPattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
struct FillExtrusionHeight : DataDrivenPaintProperty<float, attributes::height, uniforms::height> {
static float defaultValue() { return 0; }
};
struct FillExtrusionBase : DataDrivenPaintProperty<float, attributes::base, uniforms::base> {
static float defaultValue() { return 0; }
};
struct FillExtrusionVerticalGradient : PaintProperty<bool> {
static bool defaultValue() { return true; }
};
class FillExtrusionPaintProperties : public Properties<
FillExtrusionOpacity,
FillExtrusionBase,
FillExtrusionColor,
FillExtrusionHeight,
FillExtrusionOpacity,
FillExtrusionPattern,
FillExtrusionTranslate,
FillExtrusionTranslateAnchor,
FillExtrusionPattern,
FillExtrusionHeight,
FillExtrusionBase,
FillExtrusionVerticalGradient
> {};

View File

@@ -90,33 +90,6 @@ TransitionOptions FillLayer::getFillAntialiasTransition() const {
return impl().paint.template get<FillAntialias>().options;
}
PropertyValue<float> FillLayer::getDefaultFillOpacity() {
return { 1 };
}
const PropertyValue<float>& FillLayer::getFillOpacity() const {
return impl().paint.template get<FillOpacity>().value;
}
void FillLayer::setFillOpacity(const PropertyValue<float>& value) {
if (value == getFillOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillLayer::setFillOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillLayer::getFillOpacityTransition() const {
return impl().paint.template get<FillOpacity>().options;
}
PropertyValue<Color> FillLayer::getDefaultFillColor() {
return { Color::black() };
}
@@ -144,6 +117,33 @@ TransitionOptions FillLayer::getFillColorTransition() const {
return impl().paint.template get<FillColor>().options;
}
PropertyValue<float> FillLayer::getDefaultFillOpacity() {
return { 1 };
}
const PropertyValue<float>& FillLayer::getFillOpacity() const {
return impl().paint.template get<FillOpacity>().value;
}
void FillLayer::setFillOpacity(const PropertyValue<float>& value) {
if (value == getFillOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillLayer::setFillOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillLayer::getFillOpacityTransition() const {
return impl().paint.template get<FillOpacity>().options;
}
PropertyValue<Color> FillLayer::getDefaultFillOutlineColor() {
return { {} };
}
@@ -171,6 +171,33 @@ TransitionOptions FillLayer::getFillOutlineColorTransition() const {
return impl().paint.template get<FillOutlineColor>().options;
}
PropertyValue<std::string> FillLayer::getDefaultFillPattern() {
return { "" };
}
const PropertyValue<std::string>& FillLayer::getFillPattern() const {
return impl().paint.template get<FillPattern>().value;
}
void FillLayer::setFillPattern(const PropertyValue<std::string>& value) {
if (value == getFillPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillLayer::setFillPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillLayer::getFillPatternTransition() const {
return impl().paint.template get<FillPattern>().options;
}
PropertyValue<std::array<float, 2>> FillLayer::getDefaultFillTranslate() {
return { {{ 0, 0 }} };
}
@@ -225,68 +252,41 @@ TransitionOptions FillLayer::getFillTranslateAnchorTransition() const {
return impl().paint.template get<FillTranslateAnchor>().options;
}
PropertyValue<std::string> FillLayer::getDefaultFillPattern() {
return { "" };
}
const PropertyValue<std::string>& FillLayer::getFillPattern() const {
return impl().paint.template get<FillPattern>().value;
}
void FillLayer::setFillPattern(const PropertyValue<std::string>& value) {
if (value == getFillPattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<FillPattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void FillLayer::setFillPatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<FillPattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions FillLayer::getFillPatternTransition() const {
return impl().paint.template get<FillPattern>().options;
}
using namespace conversion;
optional<Error> 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<mapbox::eternal::string, uint8_t>({
{ "fill-antialias", static_cast<uint8_t>(Property::FillAntialias) },
{ "fill-opacity", static_cast<uint8_t>(Property::FillOpacity) },
{ "fill-color", static_cast<uint8_t>(Property::FillColor) },
{ "fill-opacity", static_cast<uint8_t>(Property::FillOpacity) },
{ "fill-outline-color", static_cast<uint8_t>(Property::FillOutlineColor) },
{ "fill-pattern", static_cast<uint8_t>(Property::FillPattern) },
{ "fill-translate", static_cast<uint8_t>(Property::FillTranslate) },
{ "fill-translate-anchor", static_cast<uint8_t>(Property::FillTranslateAnchor) },
{ "fill-pattern", static_cast<uint8_t>(Property::FillPattern) },
{ "fill-antialias-transition", static_cast<uint8_t>(Property::FillAntialiasTransition) },
{ "fill-opacity-transition", static_cast<uint8_t>(Property::FillOpacityTransition) },
{ "fill-color-transition", static_cast<uint8_t>(Property::FillColorTransition) },
{ "fill-opacity-transition", static_cast<uint8_t>(Property::FillOpacityTransition) },
{ "fill-outline-color-transition", static_cast<uint8_t>(Property::FillOutlineColorTransition) },
{ "fill-pattern-transition", static_cast<uint8_t>(Property::FillPatternTransition) },
{ "fill-translate-transition", static_cast<uint8_t>(Property::FillTranslateTransition) },
{ "fill-translate-anchor-transition", static_cast<uint8_t>(Property::FillTranslateAnchorTransition) },
{ "fill-pattern-transition", static_cast<uint8_t>(Property::FillPatternTransition) }
{ "fill-translate-anchor-transition", static_cast<uint8_t>(Property::FillTranslateAnchorTransition) }
});
const auto it = properties.find(name.c_str());
@@ -309,18 +309,6 @@ optional<Error> FillLayer::setPaintProperty(const std::string& name, const Conve
}
if (property == Property::FillOpacity) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillOpacity(*typedValue);
return nullopt;
}
if (property == Property::FillColor || property == Property::FillOutlineColor) {
Error error;
optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, true, false);
@@ -340,6 +328,30 @@ optional<Error> FillLayer::setPaintProperty(const std::string& name, const Conve
}
if (property == Property::FillOpacity) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillOpacity(*typedValue);
return nullopt;
}
if (property == Property::FillPattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillPattern(*typedValue);
return nullopt;
}
if (property == Property::FillTranslate) {
Error error;
optional<PropertyValue<std::array<float, 2>>> typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false);
@@ -364,18 +376,6 @@ optional<Error> FillLayer::setPaintProperty(const std::string& name, const Conve
}
if (property == Property::FillPattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setFillPattern(*typedValue);
return nullopt;
}
Error error;
optional<TransitionOptions> transition = convert<TransitionOptions>(value, error);
@@ -388,21 +388,26 @@ optional<Error> FillLayer::setPaintProperty(const std::string& name, const Conve
return nullopt;
}
if (property == Property::FillOpacityTransition) {
setFillOpacityTransition(*transition);
return nullopt;
}
if (property == Property::FillColorTransition) {
setFillColorTransition(*transition);
return nullopt;
}
if (property == Property::FillOpacityTransition) {
setFillOpacityTransition(*transition);
return nullopt;
}
if (property == Property::FillOutlineColorTransition) {
setFillOutlineColorTransition(*transition);
return nullopt;
}
if (property == Property::FillPatternTransition) {
setFillPatternTransition(*transition);
return nullopt;
}
if (property == Property::FillTranslateTransition) {
setFillTranslateTransition(*transition);
return nullopt;
@@ -413,11 +418,6 @@ optional<Error> 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" };
}

View File

@@ -18,18 +18,22 @@ struct FillAntialias : PaintProperty<bool> {
static bool defaultValue() { return true; }
};
struct FillOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct FillColor : DataDrivenPaintProperty<Color, attributes::color, uniforms::color> {
static Color defaultValue() { return Color::black(); }
};
struct FillOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct FillOutlineColor : DataDrivenPaintProperty<Color, attributes::outline_color, uniforms::outline_color> {
static Color defaultValue() { return {}; }
};
struct FillPattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
struct FillTranslate : PaintProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
@@ -38,18 +42,14 @@ struct FillTranslateAnchor : PaintProperty<TranslateAnchorType> {
static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; }
};
struct FillPattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
class FillPaintProperties : public Properties<
FillAntialias,
FillOpacity,
FillColor,
FillOpacity,
FillOutlineColor,
FillPattern,
FillTranslate,
FillTranslateAnchor,
FillPattern
FillTranslateAnchor
> {};
class FillLayerProperties final : public LayerProperties {

View File

@@ -63,6 +63,89 @@ void HeatmapLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuff
// Paint properties
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<ColorRampPropertyValue>(rawValue, error);
}
const ColorRampPropertyValue& HeatmapLayer::getHeatmapColor() const {
return impl().paint.template get<HeatmapColor>().value;
}
void HeatmapLayer::setHeatmapColor(const ColorRampPropertyValue& value) {
if (value == getHeatmapColor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapColor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapColorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapColor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapColorTransition() const {
return impl().paint.template get<HeatmapColor>().options;
}
PropertyValue<float> HeatmapLayer::getDefaultHeatmapIntensity() {
return { 1 };
}
const PropertyValue<float>& HeatmapLayer::getHeatmapIntensity() const {
return impl().paint.template get<HeatmapIntensity>().value;
}
void HeatmapLayer::setHeatmapIntensity(const PropertyValue<float>& value) {
if (value == getHeatmapIntensity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapIntensity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapIntensityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapIntensity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapIntensityTransition() const {
return impl().paint.template get<HeatmapIntensity>().options;
}
PropertyValue<float> HeatmapLayer::getDefaultHeatmapOpacity() {
return { 1 };
}
const PropertyValue<float>& HeatmapLayer::getHeatmapOpacity() const {
return impl().paint.template get<HeatmapOpacity>().value;
}
void HeatmapLayer::setHeatmapOpacity(const PropertyValue<float>& value) {
if (value == getHeatmapOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapOpacityTransition() const {
return impl().paint.template get<HeatmapOpacity>().options;
}
PropertyValue<float> HeatmapLayer::getDefaultHeatmapRadius() {
return { 30 };
}
@@ -117,116 +200,33 @@ TransitionOptions HeatmapLayer::getHeatmapWeightTransition() const {
return impl().paint.template get<HeatmapWeight>().options;
}
PropertyValue<float> HeatmapLayer::getDefaultHeatmapIntensity() {
return { 1 };
}
const PropertyValue<float>& HeatmapLayer::getHeatmapIntensity() const {
return impl().paint.template get<HeatmapIntensity>().value;
}
void HeatmapLayer::setHeatmapIntensity(const PropertyValue<float>& value) {
if (value == getHeatmapIntensity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapIntensity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapIntensityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapIntensity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapIntensityTransition() const {
return impl().paint.template get<HeatmapIntensity>().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<ColorRampPropertyValue>(rawValue, error);
}
const ColorRampPropertyValue& HeatmapLayer::getHeatmapColor() const {
return impl().paint.template get<HeatmapColor>().value;
}
void HeatmapLayer::setHeatmapColor(const ColorRampPropertyValue& value) {
if (value == getHeatmapColor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapColor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapColorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapColor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapColorTransition() const {
return impl().paint.template get<HeatmapColor>().options;
}
PropertyValue<float> HeatmapLayer::getDefaultHeatmapOpacity() {
return { 1 };
}
const PropertyValue<float>& HeatmapLayer::getHeatmapOpacity() const {
return impl().paint.template get<HeatmapOpacity>().value;
}
void HeatmapLayer::setHeatmapOpacity(const PropertyValue<float>& value) {
if (value == getHeatmapOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HeatmapLayer::setHeatmapOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HeatmapOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HeatmapLayer::getHeatmapOpacityTransition() const {
return impl().paint.template get<HeatmapOpacity>().options;
}
using namespace conversion;
optional<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Convertible& value) {
enum class Property : uint8_t {
HeatmapColor,
HeatmapIntensity,
HeatmapOpacity,
HeatmapRadius,
HeatmapWeight,
HeatmapIntensity,
HeatmapColor,
HeatmapOpacity,
HeatmapColorTransition,
HeatmapIntensityTransition,
HeatmapOpacityTransition,
HeatmapRadiusTransition,
HeatmapWeightTransition,
HeatmapIntensityTransition,
HeatmapColorTransition,
HeatmapOpacityTransition,
};
MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map<mapbox::eternal::string, uint8_t>({
{ "heatmap-color", static_cast<uint8_t>(Property::HeatmapColor) },
{ "heatmap-intensity", static_cast<uint8_t>(Property::HeatmapIntensity) },
{ "heatmap-opacity", static_cast<uint8_t>(Property::HeatmapOpacity) },
{ "heatmap-radius", static_cast<uint8_t>(Property::HeatmapRadius) },
{ "heatmap-weight", static_cast<uint8_t>(Property::HeatmapWeight) },
{ "heatmap-intensity", static_cast<uint8_t>(Property::HeatmapIntensity) },
{ "heatmap-color", static_cast<uint8_t>(Property::HeatmapColor) },
{ "heatmap-opacity", static_cast<uint8_t>(Property::HeatmapOpacity) },
{ "heatmap-radius-transition", static_cast<uint8_t>(Property::HeatmapRadiusTransition) },
{ "heatmap-weight-transition", static_cast<uint8_t>(Property::HeatmapWeightTransition) },
{ "heatmap-intensity-transition", static_cast<uint8_t>(Property::HeatmapIntensityTransition) },
{ "heatmap-color-transition", static_cast<uint8_t>(Property::HeatmapColorTransition) },
{ "heatmap-opacity-transition", static_cast<uint8_t>(Property::HeatmapOpacityTransition) }
{ "heatmap-intensity-transition", static_cast<uint8_t>(Property::HeatmapIntensityTransition) },
{ "heatmap-opacity-transition", static_cast<uint8_t>(Property::HeatmapOpacityTransition) },
{ "heatmap-radius-transition", static_cast<uint8_t>(Property::HeatmapRadiusTransition) },
{ "heatmap-weight-transition", static_cast<uint8_t>(Property::HeatmapWeightTransition) }
});
const auto it = properties.find(name.c_str());
@@ -237,22 +237,15 @@ optional<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Co
auto property = static_cast<Property>(it->second);
if (property == Property::HeatmapRadius || property == Property::HeatmapWeight) {
if (property == Property::HeatmapColor) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, true, false);
optional<ColorRampPropertyValue> typedValue = convert<ColorRampPropertyValue>(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<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Co
}
if (property == Property::HeatmapColor) {
if (property == Property::HeatmapRadius || property == Property::HeatmapWeight) {
Error error;
optional<ColorRampPropertyValue> typedValue = convert<ColorRampPropertyValue>(value, error, false, false);
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(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,13 +294,8 @@ optional<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Co
return error;
}
if (property == Property::HeatmapRadiusTransition) {
setHeatmapRadiusTransition(*transition);
return nullopt;
}
if (property == Property::HeatmapWeightTransition) {
setHeatmapWeightTransition(*transition);
if (property == Property::HeatmapColorTransition) {
setHeatmapColorTransition(*transition);
return nullopt;
}
@@ -309,13 +304,18 @@ optional<Error> HeatmapLayer::setPaintProperty(const std::string& name, const Co
return nullopt;
}
if (property == Property::HeatmapColorTransition) {
setHeatmapColorTransition(*transition);
if (property == Property::HeatmapOpacityTransition) {
setHeatmapOpacityTransition(*transition);
return nullopt;
}
if (property == Property::HeatmapOpacityTransition) {
setHeatmapOpacityTransition(*transition);
if (property == Property::HeatmapRadiusTransition) {
setHeatmapRadiusTransition(*transition);
return nullopt;
}
if (property == Property::HeatmapWeightTransition) {
setHeatmapWeightTransition(*transition);
return nullopt;
}

View File

@@ -14,6 +14,17 @@
namespace mbgl {
namespace style {
struct HeatmapColor : ColorRampProperty {
};
struct HeatmapIntensity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct HeatmapOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct HeatmapRadius : DataDrivenPaintProperty<float, attributes::radius, uniforms::radius> {
static float defaultValue() { return 30; }
};
@@ -22,23 +33,12 @@ struct HeatmapWeight : DataDrivenPaintProperty<float, attributes::weight, unifor
static float defaultValue() { return 1; }
};
struct HeatmapIntensity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct HeatmapColor : ColorRampProperty {
};
struct HeatmapOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
class HeatmapPaintProperties : public Properties<
HeatmapRadius,
HeatmapWeight,
HeatmapIntensity,
HeatmapColor,
HeatmapOpacity
HeatmapIntensity,
HeatmapOpacity,
HeatmapRadius,
HeatmapWeight
> {};
class HeatmapLayerProperties final : public LayerProperties {

View File

@@ -63,58 +63,31 @@ void HillshadeLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBu
// Paint properties
PropertyValue<float> HillshadeLayer::getDefaultHillshadeIlluminationDirection() {
return { 335 };
PropertyValue<Color> HillshadeLayer::getDefaultHillshadeAccentColor() {
return { Color::black() };
}
const PropertyValue<float>& HillshadeLayer::getHillshadeIlluminationDirection() const {
return impl().paint.template get<HillshadeIlluminationDirection>().value;
const PropertyValue<Color>& HillshadeLayer::getHillshadeAccentColor() const {
return impl().paint.template get<HillshadeAccentColor>().value;
}
void HillshadeLayer::setHillshadeIlluminationDirection(const PropertyValue<float>& value) {
if (value == getHillshadeIlluminationDirection())
void HillshadeLayer::setHillshadeAccentColor(const PropertyValue<Color>& value) {
if (value == getHillshadeAccentColor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeIlluminationDirection>().value = value;
impl_->paint.template get<HillshadeAccentColor>().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<HillshadeIlluminationDirection>().options = options;
impl_->paint.template get<HillshadeAccentColor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeIlluminationDirectionTransition() const {
return impl().paint.template get<HillshadeIlluminationDirection>().options;
}
PropertyValue<HillshadeIlluminationAnchorType> HillshadeLayer::getDefaultHillshadeIlluminationAnchor() {
return { HillshadeIlluminationAnchorType::Viewport };
}
const PropertyValue<HillshadeIlluminationAnchorType>& HillshadeLayer::getHillshadeIlluminationAnchor() const {
return impl().paint.template get<HillshadeIlluminationAnchor>().value;
}
void HillshadeLayer::setHillshadeIlluminationAnchor(const PropertyValue<HillshadeIlluminationAnchorType>& value) {
if (value == getHillshadeIlluminationAnchor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeIlluminationAnchor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HillshadeLayer::setHillshadeIlluminationAnchorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeIlluminationAnchor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeIlluminationAnchorTransition() const {
return impl().paint.template get<HillshadeIlluminationAnchor>().options;
TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const {
return impl().paint.template get<HillshadeAccentColor>().options;
}
PropertyValue<float> HillshadeLayer::getDefaultHillshadeExaggeration() {
@@ -144,33 +117,6 @@ TransitionOptions HillshadeLayer::getHillshadeExaggerationTransition() const {
return impl().paint.template get<HillshadeExaggeration>().options;
}
PropertyValue<Color> HillshadeLayer::getDefaultHillshadeShadowColor() {
return { Color::black() };
}
const PropertyValue<Color>& HillshadeLayer::getHillshadeShadowColor() const {
return impl().paint.template get<HillshadeShadowColor>().value;
}
void HillshadeLayer::setHillshadeShadowColor(const PropertyValue<Color>& value) {
if (value == getHillshadeShadowColor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeShadowColor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HillshadeLayer::setHillshadeShadowColorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeShadowColor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeShadowColorTransition() const {
return impl().paint.template get<HillshadeShadowColor>().options;
}
PropertyValue<Color> HillshadeLayer::getDefaultHillshadeHighlightColor() {
return { Color::white() };
}
@@ -198,64 +144,118 @@ TransitionOptions HillshadeLayer::getHillshadeHighlightColorTransition() const {
return impl().paint.template get<HillshadeHighlightColor>().options;
}
PropertyValue<Color> HillshadeLayer::getDefaultHillshadeAccentColor() {
return { Color::black() };
PropertyValue<HillshadeIlluminationAnchorType> HillshadeLayer::getDefaultHillshadeIlluminationAnchor() {
return { HillshadeIlluminationAnchorType::Viewport };
}
const PropertyValue<Color>& HillshadeLayer::getHillshadeAccentColor() const {
return impl().paint.template get<HillshadeAccentColor>().value;
const PropertyValue<HillshadeIlluminationAnchorType>& HillshadeLayer::getHillshadeIlluminationAnchor() const {
return impl().paint.template get<HillshadeIlluminationAnchor>().value;
}
void HillshadeLayer::setHillshadeAccentColor(const PropertyValue<Color>& value) {
if (value == getHillshadeAccentColor())
void HillshadeLayer::setHillshadeIlluminationAnchor(const PropertyValue<HillshadeIlluminationAnchorType>& value) {
if (value == getHillshadeIlluminationAnchor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeAccentColor>().value = value;
impl_->paint.template get<HillshadeIlluminationAnchor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HillshadeLayer::setHillshadeAccentColorTransition(const TransitionOptions& options) {
void HillshadeLayer::setHillshadeIlluminationAnchorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeAccentColor>().options = options;
impl_->paint.template get<HillshadeIlluminationAnchor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeAccentColorTransition() const {
return impl().paint.template get<HillshadeAccentColor>().options;
TransitionOptions HillshadeLayer::getHillshadeIlluminationAnchorTransition() const {
return impl().paint.template get<HillshadeIlluminationAnchor>().options;
}
PropertyValue<float> HillshadeLayer::getDefaultHillshadeIlluminationDirection() {
return { 335 };
}
const PropertyValue<float>& HillshadeLayer::getHillshadeIlluminationDirection() const {
return impl().paint.template get<HillshadeIlluminationDirection>().value;
}
void HillshadeLayer::setHillshadeIlluminationDirection(const PropertyValue<float>& value) {
if (value == getHillshadeIlluminationDirection())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeIlluminationDirection>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HillshadeLayer::setHillshadeIlluminationDirectionTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeIlluminationDirection>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeIlluminationDirectionTransition() const {
return impl().paint.template get<HillshadeIlluminationDirection>().options;
}
PropertyValue<Color> HillshadeLayer::getDefaultHillshadeShadowColor() {
return { Color::black() };
}
const PropertyValue<Color>& HillshadeLayer::getHillshadeShadowColor() const {
return impl().paint.template get<HillshadeShadowColor>().value;
}
void HillshadeLayer::setHillshadeShadowColor(const PropertyValue<Color>& value) {
if (value == getHillshadeShadowColor())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeShadowColor>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void HillshadeLayer::setHillshadeShadowColorTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<HillshadeShadowColor>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions HillshadeLayer::getHillshadeShadowColorTransition() const {
return impl().paint.template get<HillshadeShadowColor>().options;
}
using namespace conversion;
optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const Convertible& value) {
enum class Property : uint8_t {
HillshadeIlluminationDirection,
HillshadeIlluminationAnchor,
HillshadeExaggeration,
HillshadeShadowColor,
HillshadeHighlightColor,
HillshadeAccentColor,
HillshadeIlluminationDirectionTransition,
HillshadeIlluminationAnchorTransition,
HillshadeExaggerationTransition,
HillshadeShadowColorTransition,
HillshadeHighlightColorTransition,
HillshadeExaggeration,
HillshadeHighlightColor,
HillshadeIlluminationAnchor,
HillshadeIlluminationDirection,
HillshadeShadowColor,
HillshadeAccentColorTransition,
HillshadeExaggerationTransition,
HillshadeHighlightColorTransition,
HillshadeIlluminationAnchorTransition,
HillshadeIlluminationDirectionTransition,
HillshadeShadowColorTransition,
};
MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map<mapbox::eternal::string, uint8_t>({
{ "hillshade-illumination-direction", static_cast<uint8_t>(Property::HillshadeIlluminationDirection) },
{ "hillshade-illumination-anchor", static_cast<uint8_t>(Property::HillshadeIlluminationAnchor) },
{ "hillshade-exaggeration", static_cast<uint8_t>(Property::HillshadeExaggeration) },
{ "hillshade-shadow-color", static_cast<uint8_t>(Property::HillshadeShadowColor) },
{ "hillshade-highlight-color", static_cast<uint8_t>(Property::HillshadeHighlightColor) },
{ "hillshade-accent-color", static_cast<uint8_t>(Property::HillshadeAccentColor) },
{ "hillshade-illumination-direction-transition", static_cast<uint8_t>(Property::HillshadeIlluminationDirectionTransition) },
{ "hillshade-illumination-anchor-transition", static_cast<uint8_t>(Property::HillshadeIlluminationAnchorTransition) },
{ "hillshade-exaggeration", static_cast<uint8_t>(Property::HillshadeExaggeration) },
{ "hillshade-highlight-color", static_cast<uint8_t>(Property::HillshadeHighlightColor) },
{ "hillshade-illumination-anchor", static_cast<uint8_t>(Property::HillshadeIlluminationAnchor) },
{ "hillshade-illumination-direction", static_cast<uint8_t>(Property::HillshadeIlluminationDirection) },
{ "hillshade-shadow-color", static_cast<uint8_t>(Property::HillshadeShadowColor) },
{ "hillshade-accent-color-transition", static_cast<uint8_t>(Property::HillshadeAccentColorTransition) },
{ "hillshade-exaggeration-transition", static_cast<uint8_t>(Property::HillshadeExaggerationTransition) },
{ "hillshade-shadow-color-transition", static_cast<uint8_t>(Property::HillshadeShadowColorTransition) },
{ "hillshade-highlight-color-transition", static_cast<uint8_t>(Property::HillshadeHighlightColorTransition) },
{ "hillshade-accent-color-transition", static_cast<uint8_t>(Property::HillshadeAccentColorTransition) }
{ "hillshade-illumination-anchor-transition", static_cast<uint8_t>(Property::HillshadeIlluminationAnchorTransition) },
{ "hillshade-illumination-direction-transition", static_cast<uint8_t>(Property::HillshadeIlluminationDirectionTransition) },
{ "hillshade-shadow-color-transition", static_cast<uint8_t>(Property::HillshadeShadowColorTransition) }
});
const auto it = properties.find(name.c_str());
@@ -266,20 +266,44 @@ optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const
auto property = static_cast<Property>(it->second);
if (property == Property::HillshadeIlluminationDirection || property == Property::HillshadeExaggeration) {
if (property == Property::HillshadeAccentColor || property == Property::HillshadeHighlightColor || property == Property::HillshadeShadowColor) {
Error error;
optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, false, false);
if (!typedValue) {
return error;
}
if (property == Property::HillshadeAccentColor) {
setHillshadeAccentColor(*typedValue);
return nullopt;
}
if (property == Property::HillshadeHighlightColor) {
setHillshadeHighlightColor(*typedValue);
return nullopt;
}
if (property == Property::HillshadeShadowColor) {
setHillshadeShadowColor(*typedValue);
return nullopt;
}
}
if (property == Property::HillshadeExaggeration || property == Property::HillshadeIlluminationDirection) {
Error error;
optional<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false);
if (!typedValue) {
return error;
}
if (property == Property::HillshadeIlluminationDirection) {
setHillshadeIlluminationDirection(*typedValue);
if (property == Property::HillshadeExaggeration) {
setHillshadeExaggeration(*typedValue);
return nullopt;
}
if (property == Property::HillshadeExaggeration) {
setHillshadeExaggeration(*typedValue);
if (property == Property::HillshadeIlluminationDirection) {
setHillshadeIlluminationDirection(*typedValue);
return nullopt;
}
@@ -297,30 +321,6 @@ optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const
}
if (property == Property::HillshadeShadowColor || property == Property::HillshadeHighlightColor || property == Property::HillshadeAccentColor) {
Error error;
optional<PropertyValue<Color>> typedValue = convert<PropertyValue<Color>>(value, error, false, false);
if (!typedValue) {
return error;
}
if (property == Property::HillshadeShadowColor) {
setHillshadeShadowColor(*typedValue);
return nullopt;
}
if (property == Property::HillshadeHighlightColor) {
setHillshadeHighlightColor(*typedValue);
return nullopt;
}
if (property == Property::HillshadeAccentColor) {
setHillshadeAccentColor(*typedValue);
return nullopt;
}
}
Error error;
optional<TransitionOptions> transition = convert<TransitionOptions>(value, error);
@@ -328,13 +328,8 @@ optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const
return error;
}
if (property == Property::HillshadeIlluminationDirectionTransition) {
setHillshadeIlluminationDirectionTransition(*transition);
return nullopt;
}
if (property == Property::HillshadeIlluminationAnchorTransition) {
setHillshadeIlluminationAnchorTransition(*transition);
if (property == Property::HillshadeAccentColorTransition) {
setHillshadeAccentColorTransition(*transition);
return nullopt;
}
@@ -343,18 +338,23 @@ optional<Error> HillshadeLayer::setPaintProperty(const std::string& name, const
return nullopt;
}
if (property == Property::HillshadeShadowColorTransition) {
setHillshadeShadowColorTransition(*transition);
return nullopt;
}
if (property == Property::HillshadeHighlightColorTransition) {
setHillshadeHighlightColorTransition(*transition);
return nullopt;
}
if (property == Property::HillshadeAccentColorTransition) {
setHillshadeAccentColorTransition(*transition);
if (property == Property::HillshadeIlluminationAnchorTransition) {
setHillshadeIlluminationAnchorTransition(*transition);
return nullopt;
}
if (property == Property::HillshadeIlluminationDirectionTransition) {
setHillshadeIlluminationDirectionTransition(*transition);
return nullopt;
}
if (property == Property::HillshadeShadowColorTransition) {
setHillshadeShadowColorTransition(*transition);
return nullopt;
}

View File

@@ -14,37 +14,37 @@
namespace mbgl {
namespace style {
struct HillshadeIlluminationDirection : PaintProperty<float> {
static float defaultValue() { return 335; }
};
struct HillshadeIlluminationAnchor : PaintProperty<HillshadeIlluminationAnchorType> {
static HillshadeIlluminationAnchorType defaultValue() { return HillshadeIlluminationAnchorType::Viewport; }
struct HillshadeAccentColor : PaintProperty<Color> {
static Color defaultValue() { return Color::black(); }
};
struct HillshadeExaggeration : PaintProperty<float> {
static float defaultValue() { return 0.5; }
};
struct HillshadeShadowColor : PaintProperty<Color> {
static Color defaultValue() { return Color::black(); }
};
struct HillshadeHighlightColor : PaintProperty<Color> {
static Color defaultValue() { return Color::white(); }
};
struct HillshadeAccentColor : PaintProperty<Color> {
struct HillshadeIlluminationAnchor : PaintProperty<HillshadeIlluminationAnchorType> {
static HillshadeIlluminationAnchorType defaultValue() { return HillshadeIlluminationAnchorType::Viewport; }
};
struct HillshadeIlluminationDirection : PaintProperty<float> {
static float defaultValue() { return 335; }
};
struct HillshadeShadowColor : PaintProperty<Color> {
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 {

View File

@@ -128,31 +128,31 @@ void LineLayer::setLineRoundLimit(const PropertyValue<float>& value) {
// Paint properties
PropertyValue<float> LineLayer::getDefaultLineOpacity() {
return { 1 };
PropertyValue<float> LineLayer::getDefaultLineBlur() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineOpacity() const {
return impl().paint.template get<LineOpacity>().value;
const PropertyValue<float>& LineLayer::getLineBlur() const {
return impl().paint.template get<LineBlur>().value;
}
void LineLayer::setLineOpacity(const PropertyValue<float>& value) {
if (value == getLineOpacity())
void LineLayer::setLineBlur(const PropertyValue<float>& value) {
if (value == getLineBlur())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineOpacity>().value = value;
impl_->paint.template get<LineBlur>().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<LineOpacity>().options = options;
impl_->paint.template get<LineBlur>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineOpacityTransition() const {
return impl().paint.template get<LineOpacity>().options;
TransitionOptions LineLayer::getLineBlurTransition() const {
return impl().paint.template get<LineBlur>().options;
}
PropertyValue<Color> LineLayer::getDefaultLineColor() {
@@ -182,6 +182,168 @@ TransitionOptions LineLayer::getLineColorTransition() const {
return impl().paint.template get<LineColor>().options;
}
PropertyValue<std::vector<float>> LineLayer::getDefaultLineDasharray() {
return { { } };
}
const PropertyValue<std::vector<float>>& LineLayer::getLineDasharray() const {
return impl().paint.template get<LineDasharray>().value;
}
void LineLayer::setLineDasharray(const PropertyValue<std::vector<float>>& value) {
if (value == getLineDasharray())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineDasharray>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineDasharrayTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineDasharray>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineDasharrayTransition() const {
return impl().paint.template get<LineDasharray>().options;
}
PropertyValue<float> LineLayer::getDefaultLineGapWidth() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineGapWidth() const {
return impl().paint.template get<LineGapWidth>().value;
}
void LineLayer::setLineGapWidth(const PropertyValue<float>& value) {
if (value == getLineGapWidth())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineGapWidth>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineGapWidthTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineGapWidth>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineGapWidthTransition() const {
return impl().paint.template get<LineGapWidth>().options;
}
ColorRampPropertyValue LineLayer::getDefaultLineGradient() {
return { {} };
}
const ColorRampPropertyValue& LineLayer::getLineGradient() const {
return impl().paint.template get<LineGradient>().value;
}
void LineLayer::setLineGradient(const ColorRampPropertyValue& value) {
if (value == getLineGradient())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineGradient>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineGradientTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineGradient>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineGradientTransition() const {
return impl().paint.template get<LineGradient>().options;
}
PropertyValue<float> LineLayer::getDefaultLineOffset() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineOffset() const {
return impl().paint.template get<LineOffset>().value;
}
void LineLayer::setLineOffset(const PropertyValue<float>& value) {
if (value == getLineOffset())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineOffset>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineOffsetTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineOffset>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineOffsetTransition() const {
return impl().paint.template get<LineOffset>().options;
}
PropertyValue<float> LineLayer::getDefaultLineOpacity() {
return { 1 };
}
const PropertyValue<float>& LineLayer::getLineOpacity() const {
return impl().paint.template get<LineOpacity>().value;
}
void LineLayer::setLineOpacity(const PropertyValue<float>& value) {
if (value == getLineOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineOpacityTransition() const {
return impl().paint.template get<LineOpacity>().options;
}
PropertyValue<std::string> LineLayer::getDefaultLinePattern() {
return { "" };
}
const PropertyValue<std::string>& LineLayer::getLinePattern() const {
return impl().paint.template get<LinePattern>().value;
}
void LineLayer::setLinePattern(const PropertyValue<std::string>& value) {
if (value == getLinePattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LinePattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLinePatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LinePattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLinePatternTransition() const {
return impl().paint.template get<LinePattern>().options;
}
PropertyValue<std::array<float, 2>> LineLayer::getDefaultLineTranslate() {
return { {{ 0, 0 }} };
}
@@ -264,219 +426,57 @@ TransitionOptions LineLayer::getLineWidthTransition() const {
return impl().paint.template get<LineWidth>().options;
}
PropertyValue<float> LineLayer::getDefaultLineGapWidth() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineGapWidth() const {
return impl().paint.template get<LineGapWidth>().value;
}
void LineLayer::setLineGapWidth(const PropertyValue<float>& value) {
if (value == getLineGapWidth())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineGapWidth>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineGapWidthTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineGapWidth>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineGapWidthTransition() const {
return impl().paint.template get<LineGapWidth>().options;
}
PropertyValue<float> LineLayer::getDefaultLineOffset() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineOffset() const {
return impl().paint.template get<LineOffset>().value;
}
void LineLayer::setLineOffset(const PropertyValue<float>& value) {
if (value == getLineOffset())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineOffset>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineOffsetTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineOffset>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineOffsetTransition() const {
return impl().paint.template get<LineOffset>().options;
}
PropertyValue<float> LineLayer::getDefaultLineBlur() {
return { 0 };
}
const PropertyValue<float>& LineLayer::getLineBlur() const {
return impl().paint.template get<LineBlur>().value;
}
void LineLayer::setLineBlur(const PropertyValue<float>& value) {
if (value == getLineBlur())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineBlur>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineBlurTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineBlur>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineBlurTransition() const {
return impl().paint.template get<LineBlur>().options;
}
PropertyValue<std::vector<float>> LineLayer::getDefaultLineDasharray() {
return { { } };
}
const PropertyValue<std::vector<float>>& LineLayer::getLineDasharray() const {
return impl().paint.template get<LineDasharray>().value;
}
void LineLayer::setLineDasharray(const PropertyValue<std::vector<float>>& value) {
if (value == getLineDasharray())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineDasharray>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineDasharrayTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineDasharray>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineDasharrayTransition() const {
return impl().paint.template get<LineDasharray>().options;
}
PropertyValue<std::string> LineLayer::getDefaultLinePattern() {
return { "" };
}
const PropertyValue<std::string>& LineLayer::getLinePattern() const {
return impl().paint.template get<LinePattern>().value;
}
void LineLayer::setLinePattern(const PropertyValue<std::string>& value) {
if (value == getLinePattern())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LinePattern>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLinePatternTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LinePattern>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLinePatternTransition() const {
return impl().paint.template get<LinePattern>().options;
}
ColorRampPropertyValue LineLayer::getDefaultLineGradient() {
return { {} };
}
const ColorRampPropertyValue& LineLayer::getLineGradient() const {
return impl().paint.template get<LineGradient>().value;
}
void LineLayer::setLineGradient(const ColorRampPropertyValue& value) {
if (value == getLineGradient())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<LineGradient>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void LineLayer::setLineGradientTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<LineGradient>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions LineLayer::getLineGradientTransition() const {
return impl().paint.template get<LineGradient>().options;
}
using namespace conversion;
optional<Error> LineLayer::setPaintProperty(const std::string& name, const Convertible& value) {
enum class Property : uint8_t {
LineOpacity,
LineBlur,
LineColor,
LineDasharray,
LineGapWidth,
LineGradient,
LineOffset,
LineOpacity,
LinePattern,
LineTranslate,
LineTranslateAnchor,
LineWidth,
LineGapWidth,
LineOffset,
LineBlur,
LineDasharray,
LinePattern,
LineGradient,
LineOpacityTransition,
LineBlurTransition,
LineColorTransition,
LineDasharrayTransition,
LineGapWidthTransition,
LineGradientTransition,
LineOffsetTransition,
LineOpacityTransition,
LinePatternTransition,
LineTranslateTransition,
LineTranslateAnchorTransition,
LineWidthTransition,
LineGapWidthTransition,
LineOffsetTransition,
LineBlurTransition,
LineDasharrayTransition,
LinePatternTransition,
LineGradientTransition,
};
MAPBOX_ETERNAL_CONSTEXPR const auto properties = mapbox::eternal::hash_map<mapbox::eternal::string, uint8_t>({
{ "line-opacity", static_cast<uint8_t>(Property::LineOpacity) },
{ "line-blur", static_cast<uint8_t>(Property::LineBlur) },
{ "line-color", static_cast<uint8_t>(Property::LineColor) },
{ "line-dasharray", static_cast<uint8_t>(Property::LineDasharray) },
{ "line-gap-width", static_cast<uint8_t>(Property::LineGapWidth) },
{ "line-gradient", static_cast<uint8_t>(Property::LineGradient) },
{ "line-offset", static_cast<uint8_t>(Property::LineOffset) },
{ "line-opacity", static_cast<uint8_t>(Property::LineOpacity) },
{ "line-pattern", static_cast<uint8_t>(Property::LinePattern) },
{ "line-translate", static_cast<uint8_t>(Property::LineTranslate) },
{ "line-translate-anchor", static_cast<uint8_t>(Property::LineTranslateAnchor) },
{ "line-width", static_cast<uint8_t>(Property::LineWidth) },
{ "line-gap-width", static_cast<uint8_t>(Property::LineGapWidth) },
{ "line-offset", static_cast<uint8_t>(Property::LineOffset) },
{ "line-blur", static_cast<uint8_t>(Property::LineBlur) },
{ "line-dasharray", static_cast<uint8_t>(Property::LineDasharray) },
{ "line-pattern", static_cast<uint8_t>(Property::LinePattern) },
{ "line-gradient", static_cast<uint8_t>(Property::LineGradient) },
{ "line-opacity-transition", static_cast<uint8_t>(Property::LineOpacityTransition) },
{ "line-blur-transition", static_cast<uint8_t>(Property::LineBlurTransition) },
{ "line-color-transition", static_cast<uint8_t>(Property::LineColorTransition) },
{ "line-dasharray-transition", static_cast<uint8_t>(Property::LineDasharrayTransition) },
{ "line-gap-width-transition", static_cast<uint8_t>(Property::LineGapWidthTransition) },
{ "line-gradient-transition", static_cast<uint8_t>(Property::LineGradientTransition) },
{ "line-offset-transition", static_cast<uint8_t>(Property::LineOffsetTransition) },
{ "line-opacity-transition", static_cast<uint8_t>(Property::LineOpacityTransition) },
{ "line-pattern-transition", static_cast<uint8_t>(Property::LinePatternTransition) },
{ "line-translate-transition", static_cast<uint8_t>(Property::LineTranslateTransition) },
{ "line-translate-anchor-transition", static_cast<uint8_t>(Property::LineTranslateAnchorTransition) },
{ "line-width-transition", static_cast<uint8_t>(Property::LineWidthTransition) },
{ "line-gap-width-transition", static_cast<uint8_t>(Property::LineGapWidthTransition) },
{ "line-offset-transition", static_cast<uint8_t>(Property::LineOffsetTransition) },
{ "line-blur-transition", static_cast<uint8_t>(Property::LineBlurTransition) },
{ "line-dasharray-transition", static_cast<uint8_t>(Property::LineDasharrayTransition) },
{ "line-pattern-transition", static_cast<uint8_t>(Property::LinePatternTransition) },
{ "line-gradient-transition", static_cast<uint8_t>(Property::LineGradientTransition) }
{ "line-width-transition", static_cast<uint8_t>(Property::LineWidthTransition) }
});
const auto it = properties.find(name.c_str());
@@ -487,20 +487,15 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
auto property = static_cast<Property>(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<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(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<Error> 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,6 +533,42 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
}
if (property == Property::LineDasharray) {
Error error;
optional<PropertyValue<std::vector<float>>> typedValue = convert<PropertyValue<std::vector<float>>>(value, error, false, false);
if (!typedValue) {
return error;
}
setLineDasharray(*typedValue);
return nullopt;
}
if (property == Property::LineGradient) {
Error error;
optional<ColorRampPropertyValue> typedValue = convert<ColorRampPropertyValue>(value, error, false, false);
if (!typedValue) {
return error;
}
setLineGradient(*typedValue);
return nullopt;
}
if (property == Property::LinePattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setLinePattern(*typedValue);
return nullopt;
}
if (property == Property::LineTranslate) {
Error error;
optional<PropertyValue<std::array<float, 2>>> typedValue = convert<PropertyValue<std::array<float, 2>>>(value, error, false, false);
@@ -557,42 +593,6 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
}
if (property == Property::LineDasharray) {
Error error;
optional<PropertyValue<std::vector<float>>> typedValue = convert<PropertyValue<std::vector<float>>>(value, error, false, false);
if (!typedValue) {
return error;
}
setLineDasharray(*typedValue);
return nullopt;
}
if (property == Property::LinePattern) {
Error error;
optional<PropertyValue<std::string>> typedValue = convert<PropertyValue<std::string>>(value, error, true, false);
if (!typedValue) {
return error;
}
setLinePattern(*typedValue);
return nullopt;
}
if (property == Property::LineGradient) {
Error error;
optional<ColorRampPropertyValue> typedValue = convert<ColorRampPropertyValue>(value, error, false, false);
if (!typedValue) {
return error;
}
setLineGradient(*typedValue);
return nullopt;
}
Error error;
optional<TransitionOptions> transition = convert<TransitionOptions>(value, error);
@@ -600,8 +600,8 @@ optional<Error> 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,6 +610,36 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
return nullopt;
}
if (property == Property::LineDasharrayTransition) {
setLineDasharrayTransition(*transition);
return nullopt;
}
if (property == Property::LineGapWidthTransition) {
setLineGapWidthTransition(*transition);
return nullopt;
}
if (property == Property::LineGradientTransition) {
setLineGradientTransition(*transition);
return nullopt;
}
if (property == Property::LineOffsetTransition) {
setLineOffsetTransition(*transition);
return nullopt;
}
if (property == Property::LineOpacityTransition) {
setLineOpacityTransition(*transition);
return nullopt;
}
if (property == Property::LinePatternTransition) {
setLinePatternTransition(*transition);
return nullopt;
}
if (property == Property::LineTranslateTransition) {
setLineTranslateTransition(*transition);
return nullopt;
@@ -625,36 +655,6 @@ optional<Error> LineLayer::setPaintProperty(const std::string& name, const Conve
return nullopt;
}
if (property == Property::LineGapWidthTransition) {
setLineGapWidthTransition(*transition);
return nullopt;
}
if (property == Property::LineOffsetTransition) {
setLineOffsetTransition(*transition);
return nullopt;
}
if (property == Property::LineBlurTransition) {
setLineBlurTransition(*transition);
return nullopt;
}
if (property == Property::LineDasharrayTransition) {
setLineDasharrayTransition(*transition);
return nullopt;
}
if (property == Property::LinePatternTransition) {
setLinePatternTransition(*transition);
return nullopt;
}
if (property == Property::LineGradientTransition) {
setLineGradientTransition(*transition);
return nullopt;
}
return Error { "layer doesn't support this property" };
}

View File

@@ -34,14 +34,42 @@ struct LineRoundLimit : LayoutProperty<float> {
static float defaultValue() { return 1; }
};
struct LineOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
struct LineBlur : DataDrivenPaintProperty<float, attributes::blur, uniforms::blur> {
static float defaultValue() { return 0; }
};
struct LineColor : DataDrivenPaintProperty<Color, attributes::color, uniforms::color> {
static Color defaultValue() { return Color::black(); }
};
struct LineDasharray : CrossFadedPaintProperty<std::vector<float>> {
static std::vector<float> defaultValue() { return { }; }
};
struct LineFloorWidth : DataDrivenPaintProperty<float, attributes::floorwidth, uniforms::floorwidth> {
static float defaultValue() { return 1; }
using EvaluatorType = DataDrivenPropertyEvaluator<float, true>;
};
struct LineGapWidth : DataDrivenPaintProperty<float, attributes::gapwidth, uniforms::gapwidth> {
static float defaultValue() { return 0; }
};
struct LineGradient : ColorRampProperty {
};
struct LineOffset : DataDrivenPaintProperty<float, attributes::offset, uniforms::offset> {
static float defaultValue() { return 0; }
};
struct LineOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct LinePattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
struct LineTranslate : PaintProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
@@ -54,34 +82,6 @@ struct LineWidth : DataDrivenPaintProperty<float, attributes::width, uniforms::w
static float defaultValue() { return 1; }
};
struct LineGapWidth : DataDrivenPaintProperty<float, attributes::gapwidth, uniforms::gapwidth> {
static float defaultValue() { return 0; }
};
struct LineOffset : DataDrivenPaintProperty<float, attributes::offset, uniforms::offset> {
static float defaultValue() { return 0; }
};
struct LineBlur : DataDrivenPaintProperty<float, attributes::blur, uniforms::blur> {
static float defaultValue() { return 0; }
};
struct LineDasharray : CrossFadedPaintProperty<std::vector<float>> {
static std::vector<float> defaultValue() { return { }; }
};
struct LinePattern : CrossFadedDataDrivenPaintProperty<std::string, attributes::pattern_to, uniforms::pattern_to, attributes::pattern_from, uniforms::pattern_from> {
static std::string defaultValue() { return ""; }
};
struct LineGradient : ColorRampProperty {
};
struct LineFloorWidth : DataDrivenPaintProperty<float, attributes::floorwidth, uniforms::floorwidth> {
static float defaultValue() { return 1; }
using EvaluatorType = DataDrivenPropertyEvaluator<float, true>;
};
class LineLayoutProperties : public Properties<
LineCap,
LineJoin,
@@ -90,18 +90,18 @@ class LineLayoutProperties : public Properties<
> {};
class LinePaintProperties : public Properties<
LineOpacity,
LineBlur,
LineColor,
LineDasharray,
LineFloorWidth,
LineGapWidth,
LineGradient,
LineOffset,
LineOpacity,
LinePattern,
LineTranslate,
LineTranslateAnchor,
LineWidth,
LineGapWidth,
LineOffset,
LineBlur,
LineDasharray,
LinePattern,
LineGradient,
LineFloorWidth
LineWidth
> {};
class LineLayerProperties final : public LayerProperties {

View File

@@ -63,58 +63,31 @@ void RasterLayer::Impl::stringifyLayout(rapidjson::Writer<rapidjson::StringBuffe
// Paint properties
PropertyValue<float> RasterLayer::getDefaultRasterOpacity() {
PropertyValue<float> RasterLayer::getDefaultRasterBrightnessMax() {
return { 1 };
}
const PropertyValue<float>& RasterLayer::getRasterOpacity() const {
return impl().paint.template get<RasterOpacity>().value;
const PropertyValue<float>& RasterLayer::getRasterBrightnessMax() const {
return impl().paint.template get<RasterBrightnessMax>().value;
}
void RasterLayer::setRasterOpacity(const PropertyValue<float>& value) {
if (value == getRasterOpacity())
void RasterLayer::setRasterBrightnessMax(const PropertyValue<float>& value) {
if (value == getRasterBrightnessMax())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterOpacity>().value = value;
impl_->paint.template get<RasterBrightnessMax>().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<RasterOpacity>().options = options;
impl_->paint.template get<RasterBrightnessMax>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterOpacityTransition() const {
return impl().paint.template get<RasterOpacity>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterHueRotate() {
return { 0 };
}
const PropertyValue<float>& RasterLayer::getRasterHueRotate() const {
return impl().paint.template get<RasterHueRotate>().value;
}
void RasterLayer::setRasterHueRotate(const PropertyValue<float>& value) {
if (value == getRasterHueRotate())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterHueRotate>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterHueRotateTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterHueRotate>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterHueRotateTransition() const {
return impl().paint.template get<RasterHueRotate>().options;
TransitionOptions RasterLayer::getRasterBrightnessMaxTransition() const {
return impl().paint.template get<RasterBrightnessMax>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterBrightnessMin() {
@@ -144,60 +117,6 @@ TransitionOptions RasterLayer::getRasterBrightnessMinTransition() const {
return impl().paint.template get<RasterBrightnessMin>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterBrightnessMax() {
return { 1 };
}
const PropertyValue<float>& RasterLayer::getRasterBrightnessMax() const {
return impl().paint.template get<RasterBrightnessMax>().value;
}
void RasterLayer::setRasterBrightnessMax(const PropertyValue<float>& value) {
if (value == getRasterBrightnessMax())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterBrightnessMax>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterBrightnessMaxTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterBrightnessMax>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterBrightnessMaxTransition() const {
return impl().paint.template get<RasterBrightnessMax>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterSaturation() {
return { 0 };
}
const PropertyValue<float>& RasterLayer::getRasterSaturation() const {
return impl().paint.template get<RasterSaturation>().value;
}
void RasterLayer::setRasterSaturation(const PropertyValue<float>& value) {
if (value == getRasterSaturation())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterSaturation>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterSaturationTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterSaturation>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterSaturationTransition() const {
return impl().paint.template get<RasterSaturation>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterContrast() {
return { 0 };
}
@@ -225,33 +144,6 @@ TransitionOptions RasterLayer::getRasterContrastTransition() const {
return impl().paint.template get<RasterContrast>().options;
}
PropertyValue<RasterResamplingType> RasterLayer::getDefaultRasterResampling() {
return { RasterResamplingType::Linear };
}
const PropertyValue<RasterResamplingType>& RasterLayer::getRasterResampling() const {
return impl().paint.template get<RasterResampling>().value;
}
void RasterLayer::setRasterResampling(const PropertyValue<RasterResamplingType>& value) {
if (value == getRasterResampling())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterResampling>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterResamplingTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterResampling>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterResamplingTransition() const {
return impl().paint.template get<RasterResampling>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterFadeDuration() {
return { 300 };
}
@@ -279,45 +171,153 @@ TransitionOptions RasterLayer::getRasterFadeDurationTransition() const {
return impl().paint.template get<RasterFadeDuration>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterHueRotate() {
return { 0 };
}
const PropertyValue<float>& RasterLayer::getRasterHueRotate() const {
return impl().paint.template get<RasterHueRotate>().value;
}
void RasterLayer::setRasterHueRotate(const PropertyValue<float>& value) {
if (value == getRasterHueRotate())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterHueRotate>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterHueRotateTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterHueRotate>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterHueRotateTransition() const {
return impl().paint.template get<RasterHueRotate>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterOpacity() {
return { 1 };
}
const PropertyValue<float>& RasterLayer::getRasterOpacity() const {
return impl().paint.template get<RasterOpacity>().value;
}
void RasterLayer::setRasterOpacity(const PropertyValue<float>& value) {
if (value == getRasterOpacity())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterOpacity>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterOpacityTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterOpacity>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterOpacityTransition() const {
return impl().paint.template get<RasterOpacity>().options;
}
PropertyValue<RasterResamplingType> RasterLayer::getDefaultRasterResampling() {
return { RasterResamplingType::Linear };
}
const PropertyValue<RasterResamplingType>& RasterLayer::getRasterResampling() const {
return impl().paint.template get<RasterResampling>().value;
}
void RasterLayer::setRasterResampling(const PropertyValue<RasterResamplingType>& value) {
if (value == getRasterResampling())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterResampling>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterResamplingTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterResampling>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterResamplingTransition() const {
return impl().paint.template get<RasterResampling>().options;
}
PropertyValue<float> RasterLayer::getDefaultRasterSaturation() {
return { 0 };
}
const PropertyValue<float>& RasterLayer::getRasterSaturation() const {
return impl().paint.template get<RasterSaturation>().value;
}
void RasterLayer::setRasterSaturation(const PropertyValue<float>& value) {
if (value == getRasterSaturation())
return;
auto impl_ = mutableImpl();
impl_->paint.template get<RasterSaturation>().value = value;
baseImpl = std::move(impl_);
observer->onLayerChanged(*this);
}
void RasterLayer::setRasterSaturationTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->paint.template get<RasterSaturation>().options = options;
baseImpl = std::move(impl_);
}
TransitionOptions RasterLayer::getRasterSaturationTransition() const {
return impl().paint.template get<RasterSaturation>().options;
}
using namespace conversion;
optional<Error> 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<mapbox::eternal::string, uint8_t>({
{ "raster-opacity", static_cast<uint8_t>(Property::RasterOpacity) },
{ "raster-hue-rotate", static_cast<uint8_t>(Property::RasterHueRotate) },
{ "raster-brightness-min", static_cast<uint8_t>(Property::RasterBrightnessMin) },
{ "raster-brightness-max", static_cast<uint8_t>(Property::RasterBrightnessMax) },
{ "raster-saturation", static_cast<uint8_t>(Property::RasterSaturation) },
{ "raster-brightness-min", static_cast<uint8_t>(Property::RasterBrightnessMin) },
{ "raster-contrast", static_cast<uint8_t>(Property::RasterContrast) },
{ "raster-resampling", static_cast<uint8_t>(Property::RasterResampling) },
{ "raster-fade-duration", static_cast<uint8_t>(Property::RasterFadeDuration) },
{ "raster-opacity-transition", static_cast<uint8_t>(Property::RasterOpacityTransition) },
{ "raster-hue-rotate-transition", static_cast<uint8_t>(Property::RasterHueRotateTransition) },
{ "raster-brightness-min-transition", static_cast<uint8_t>(Property::RasterBrightnessMinTransition) },
{ "raster-hue-rotate", static_cast<uint8_t>(Property::RasterHueRotate) },
{ "raster-opacity", static_cast<uint8_t>(Property::RasterOpacity) },
{ "raster-resampling", static_cast<uint8_t>(Property::RasterResampling) },
{ "raster-saturation", static_cast<uint8_t>(Property::RasterSaturation) },
{ "raster-brightness-max-transition", static_cast<uint8_t>(Property::RasterBrightnessMaxTransition) },
{ "raster-saturation-transition", static_cast<uint8_t>(Property::RasterSaturationTransition) },
{ "raster-brightness-min-transition", static_cast<uint8_t>(Property::RasterBrightnessMinTransition) },
{ "raster-contrast-transition", static_cast<uint8_t>(Property::RasterContrastTransition) },
{ "raster-fade-duration-transition", static_cast<uint8_t>(Property::RasterFadeDurationTransition) },
{ "raster-hue-rotate-transition", static_cast<uint8_t>(Property::RasterHueRotateTransition) },
{ "raster-opacity-transition", static_cast<uint8_t>(Property::RasterOpacityTransition) },
{ "raster-resampling-transition", static_cast<uint8_t>(Property::RasterResamplingTransition) },
{ "raster-fade-duration-transition", static_cast<uint8_t>(Property::RasterFadeDurationTransition) }
{ "raster-saturation-transition", static_cast<uint8_t>(Property::RasterSaturationTransition) }
});
const auto it = properties.find(name.c_str());
@@ -328,35 +328,20 @@ optional<Error> RasterLayer::setPaintProperty(const std::string& name, const Con
auto property = static_cast<Property>(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<PropertyValue<float>> typedValue = convert<PropertyValue<float>>(value, error, false, false);
if (!typedValue) {
return error;
}
if (property == Property::RasterOpacity) {
setRasterOpacity(*typedValue);
return nullopt;
}
if (property == Property::RasterHueRotate) {
setRasterHueRotate(*typedValue);
return nullopt;
}
if (property == Property::RasterBrightnessMin) {
setRasterBrightnessMin(*typedValue);
return nullopt;
}
if (property == Property::RasterBrightnessMax) {
setRasterBrightnessMax(*typedValue);
return nullopt;
}
if (property == Property::RasterSaturation) {
setRasterSaturation(*typedValue);
if (property == Property::RasterBrightnessMin) {
setRasterBrightnessMin(*typedValue);
return nullopt;
}
@@ -370,6 +355,21 @@ optional<Error> RasterLayer::setPaintProperty(const std::string& name, const Con
return nullopt;
}
if (property == Property::RasterHueRotate) {
setRasterHueRotate(*typedValue);
return nullopt;
}
if (property == Property::RasterOpacity) {
setRasterOpacity(*typedValue);
return nullopt;
}
if (property == Property::RasterSaturation) {
setRasterSaturation(*typedValue);
return nullopt;
}
}
if (property == Property::RasterResampling) {
@@ -391,13 +391,8 @@ optional<Error> RasterLayer::setPaintProperty(const std::string& name, const Con
return error;
}
if (property == Property::RasterOpacityTransition) {
setRasterOpacityTransition(*transition);
return nullopt;
}
if (property == Property::RasterHueRotateTransition) {
setRasterHueRotateTransition(*transition);
if (property == Property::RasterBrightnessMaxTransition) {
setRasterBrightnessMaxTransition(*transition);
return nullopt;
}
@@ -406,28 +401,33 @@ optional<Error> RasterLayer::setPaintProperty(const std::string& name, const Con
return nullopt;
}
if (property == Property::RasterBrightnessMaxTransition) {
setRasterBrightnessMaxTransition(*transition);
return nullopt;
}
if (property == Property::RasterSaturationTransition) {
setRasterSaturationTransition(*transition);
return nullopt;
}
if (property == Property::RasterContrastTransition) {
setRasterContrastTransition(*transition);
return nullopt;
}
if (property == Property::RasterFadeDurationTransition) {
setRasterFadeDurationTransition(*transition);
return nullopt;
}
if (property == Property::RasterHueRotateTransition) {
setRasterHueRotateTransition(*transition);
return nullopt;
}
if (property == Property::RasterOpacityTransition) {
setRasterOpacityTransition(*transition);
return nullopt;
}
if (property == Property::RasterResamplingTransition) {
setRasterResamplingTransition(*transition);
return nullopt;
}
if (property == Property::RasterFadeDurationTransition) {
setRasterFadeDurationTransition(*transition);
if (property == Property::RasterSaturationTransition) {
setRasterSaturationTransition(*transition);
return nullopt;
}

View File

@@ -14,23 +14,11 @@
namespace mbgl {
namespace style {
struct RasterOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct RasterHueRotate : PaintProperty<float> {
static float defaultValue() { return 0; }
};
struct RasterBrightnessMin : PaintProperty<float> {
static float defaultValue() { return 0; }
};
struct RasterBrightnessMax : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct RasterSaturation : PaintProperty<float> {
struct RasterBrightnessMin : PaintProperty<float> {
static float defaultValue() { return 0; }
};
@@ -38,23 +26,35 @@ struct RasterContrast : PaintProperty<float> {
static float defaultValue() { return 0; }
};
struct RasterResampling : PaintProperty<RasterResamplingType> {
static RasterResamplingType defaultValue() { return RasterResamplingType::Linear; }
};
struct RasterFadeDuration : PaintProperty<float> {
static float defaultValue() { return 300; }
};
struct RasterHueRotate : PaintProperty<float> {
static float defaultValue() { return 0; }
};
struct RasterOpacity : PaintProperty<float> {
static float defaultValue() { return 1; }
};
struct RasterResampling : PaintProperty<RasterResamplingType> {
static RasterResamplingType defaultValue() { return RasterResamplingType::Linear; }
};
struct RasterSaturation : PaintProperty<float> {
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 {

File diff suppressed because it is too large Load Diff

View File

@@ -14,46 +14,56 @@
namespace mbgl {
namespace style {
struct SymbolPlacement : LayoutProperty<SymbolPlacementType> {
static constexpr const char *name() { return "symbol-placement"; }
static SymbolPlacementType defaultValue() { return SymbolPlacementType::Point; }
};
struct SymbolSpacing : LayoutProperty<float> {
static constexpr const char *name() { return "symbol-spacing"; }
static float defaultValue() { return 250; }
};
struct SymbolAvoidEdges : LayoutProperty<bool> {
static constexpr const char *name() { return "symbol-avoid-edges"; }
static bool defaultValue() { return false; }
};
struct SymbolSortKey : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "symbol-sort-key"; }
static float defaultValue() { return 0; }
};
struct SymbolZOrder : LayoutProperty<SymbolZOrderType> {
static constexpr const char *name() { return "symbol-z-order"; }
static SymbolZOrderType defaultValue() { return SymbolZOrderType::Auto; }
};
struct IconAllowOverlap : LayoutProperty<bool> {
static constexpr const char *name() { return "icon-allow-overlap"; }
static bool defaultValue() { return false; }
};
struct IconAnchor : DataDrivenLayoutProperty<SymbolAnchorType> {
static constexpr const char *name() { return "icon-anchor"; }
static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; }
};
struct IconIgnorePlacement : LayoutProperty<bool> {
static constexpr const char *name() { return "icon-ignore-placement"; }
static bool defaultValue() { return false; }
};
struct IconImage : DataDrivenLayoutProperty<std::string> {
static constexpr const char *name() { return "icon-image"; }
static std::string defaultValue() { return ""; }
};
struct IconKeepUpright : LayoutProperty<bool> {
static constexpr const char *name() { return "icon-keep-upright"; }
static bool defaultValue() { return false; }
};
struct IconOffset : DataDrivenLayoutProperty<std::array<float, 2>> {
static constexpr const char *name() { return "icon-offset"; }
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
struct IconOptional : LayoutProperty<bool> {
static constexpr const char *name() { return "icon-optional"; }
static bool defaultValue() { return false; }
};
struct IconPadding : LayoutProperty<float> {
static constexpr const char *name() { return "icon-padding"; }
static float defaultValue() { return 2; }
};
struct IconPitchAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "icon-pitch-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct IconRotate : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "icon-rotate"; }
static float defaultValue() { return 0; }
};
struct IconRotationAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "icon-rotation-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
@@ -74,51 +84,41 @@ struct IconTextFitPadding : LayoutProperty<std::array<float, 4>> {
static std::array<float, 4> defaultValue() { return {{ 0, 0, 0, 0 }}; }
};
struct IconImage : DataDrivenLayoutProperty<std::string> {
static constexpr const char *name() { return "icon-image"; }
static std::string defaultValue() { return ""; }
};
struct IconRotate : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "icon-rotate"; }
static float defaultValue() { return 0; }
};
struct IconPadding : LayoutProperty<float> {
static constexpr const char *name() { return "icon-padding"; }
static float defaultValue() { return 2; }
};
struct IconKeepUpright : LayoutProperty<bool> {
static constexpr const char *name() { return "icon-keep-upright"; }
struct SymbolAvoidEdges : LayoutProperty<bool> {
static constexpr const char *name() { return "symbol-avoid-edges"; }
static bool defaultValue() { return false; }
};
struct IconOffset : DataDrivenLayoutProperty<std::array<float, 2>> {
static constexpr const char *name() { return "icon-offset"; }
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
struct SymbolPlacement : LayoutProperty<SymbolPlacementType> {
static constexpr const char *name() { return "symbol-placement"; }
static SymbolPlacementType defaultValue() { return SymbolPlacementType::Point; }
};
struct IconAnchor : DataDrivenLayoutProperty<SymbolAnchorType> {
static constexpr const char *name() { return "icon-anchor"; }
struct SymbolSortKey : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "symbol-sort-key"; }
static float defaultValue() { return 0; }
};
struct SymbolSpacing : LayoutProperty<float> {
static constexpr const char *name() { return "symbol-spacing"; }
static float defaultValue() { return 250; }
};
struct SymbolZOrder : LayoutProperty<SymbolZOrderType> {
static constexpr const char *name() { return "symbol-z-order"; }
static SymbolZOrderType defaultValue() { return SymbolZOrderType::Auto; }
};
struct TextAllowOverlap : LayoutProperty<bool> {
static constexpr const char *name() { return "text-allow-overlap"; }
static bool defaultValue() { return false; }
};
struct TextAnchor : DataDrivenLayoutProperty<SymbolAnchorType> {
static constexpr const char *name() { return "text-anchor"; }
static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; }
};
struct IconPitchAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "icon-pitch-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct TextPitchAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "text-pitch-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct TextRotationAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "text-rotation-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct TextField : DataDrivenLayoutProperty<expression::Formatted> {
static constexpr const char *name() { return "text-field"; }
static expression::Formatted defaultValue() { return ""; }
@@ -129,24 +129,9 @@ struct TextFont : DataDrivenLayoutProperty<std::vector<std::string>> {
static std::vector<std::string> defaultValue() { return { "Open Sans Regular", "Arial Unicode MS Regular" }; }
};
struct TextSize : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-size"; }
static float defaultValue() { return 16; }
};
struct TextMaxWidth : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-max-width"; }
static float defaultValue() { return 10; }
};
struct TextLineHeight : LayoutProperty<float> {
static constexpr const char *name() { return "text-line-height"; }
static float defaultValue() { return 1.2; }
};
struct TextLetterSpacing : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-letter-spacing"; }
static float defaultValue() { return 0; }
struct TextIgnorePlacement : LayoutProperty<bool> {
static constexpr const char *name() { return "text-ignore-placement"; }
static bool defaultValue() { return false; }
};
struct TextJustify : DataDrivenLayoutProperty<TextJustifyType> {
@@ -154,19 +139,19 @@ struct TextJustify : DataDrivenLayoutProperty<TextJustifyType> {
static TextJustifyType defaultValue() { return TextJustifyType::Center; }
};
struct TextRadialOffset : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-radial-offset"; }
struct TextKeepUpright : LayoutProperty<bool> {
static constexpr const char *name() { return "text-keep-upright"; }
static bool defaultValue() { return true; }
};
struct TextLetterSpacing : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-letter-spacing"; }
static float defaultValue() { return 0; }
};
struct TextVariableAnchor : LayoutProperty<std::vector<TextVariableAnchorType>> {
static constexpr const char *name() { return "text-variable-anchor"; }
static std::vector<TextVariableAnchorType> defaultValue() { return { }; }
};
struct TextAnchor : DataDrivenLayoutProperty<SymbolAnchorType> {
static constexpr const char *name() { return "text-anchor"; }
static SymbolAnchorType defaultValue() { return SymbolAnchorType::Center; }
struct TextLineHeight : LayoutProperty<float> {
static constexpr const char *name() { return "text-line-height"; }
static float defaultValue() { return 1.2; }
};
struct TextMaxAngle : LayoutProperty<float> {
@@ -174,24 +159,9 @@ struct TextMaxAngle : LayoutProperty<float> {
static float defaultValue() { return 45; }
};
struct TextRotate : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-rotate"; }
static float defaultValue() { return 0; }
};
struct TextPadding : LayoutProperty<float> {
static constexpr const char *name() { return "text-padding"; }
static float defaultValue() { return 2; }
};
struct TextKeepUpright : LayoutProperty<bool> {
static constexpr const char *name() { return "text-keep-upright"; }
static bool defaultValue() { return true; }
};
struct TextTransform : DataDrivenLayoutProperty<TextTransformType> {
static constexpr const char *name() { return "text-transform"; }
static TextTransformType defaultValue() { return TextTransformType::None; }
struct TextMaxWidth : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-max-width"; }
static float defaultValue() { return 10; }
};
struct TextOffset : DataDrivenLayoutProperty<std::array<float, 2>> {
@@ -199,29 +169,59 @@ struct TextOffset : DataDrivenLayoutProperty<std::array<float, 2>> {
static std::array<float, 2> defaultValue() { return {{ 0, 0 }}; }
};
struct TextAllowOverlap : LayoutProperty<bool> {
static constexpr const char *name() { return "text-allow-overlap"; }
static bool defaultValue() { return false; }
};
struct TextIgnorePlacement : LayoutProperty<bool> {
static constexpr const char *name() { return "text-ignore-placement"; }
static bool defaultValue() { return false; }
};
struct TextOptional : LayoutProperty<bool> {
static constexpr const char *name() { return "text-optional"; }
static bool defaultValue() { return false; }
};
struct IconOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
struct TextPadding : LayoutProperty<float> {
static constexpr const char *name() { return "text-padding"; }
static float defaultValue() { return 2; }
};
struct TextPitchAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "text-pitch-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct TextRadialOffset : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-radial-offset"; }
static float defaultValue() { return 0; }
};
struct TextRotate : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-rotate"; }
static float defaultValue() { return 0; }
};
struct TextRotationAlignment : LayoutProperty<AlignmentType> {
static constexpr const char *name() { return "text-rotation-alignment"; }
static AlignmentType defaultValue() { return AlignmentType::Auto; }
};
struct TextSize : DataDrivenLayoutProperty<float> {
static constexpr const char *name() { return "text-size"; }
static float defaultValue() { return 16; }
};
struct TextTransform : DataDrivenLayoutProperty<TextTransformType> {
static constexpr const char *name() { return "text-transform"; }
static TextTransformType defaultValue() { return TextTransformType::None; }
};
struct TextVariableAnchor : LayoutProperty<std::vector<TextVariableAnchorType>> {
static constexpr const char *name() { return "text-variable-anchor"; }
static std::vector<TextVariableAnchorType> defaultValue() { return { }; }
};
struct IconColor : DataDrivenPaintProperty<Color, attributes::fill_color, uniforms::fill_color> {
static Color defaultValue() { return Color::black(); }
};
struct IconHaloBlur : DataDrivenPaintProperty<float, attributes::halo_blur, uniforms::halo_blur> {
static float defaultValue() { return 0; }
};
struct IconHaloColor : DataDrivenPaintProperty<Color, attributes::halo_color, uniforms::halo_color> {
static Color defaultValue() { return {}; }
};
@@ -230,8 +230,8 @@ struct IconHaloWidth : DataDrivenPaintProperty<float, attributes::halo_width, un
static float defaultValue() { return 0; }
};
struct IconHaloBlur : DataDrivenPaintProperty<float, attributes::halo_blur, uniforms::halo_blur> {
static float defaultValue() { return 0; }
struct IconOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct IconTranslate : PaintProperty<std::array<float, 2>> {
@@ -242,10 +242,6 @@ struct IconTranslateAnchor : PaintProperty<TranslateAnchorType> {
static TranslateAnchorType defaultValue() { return TranslateAnchorType::Map; }
};
struct TextOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct TextColor : DataDrivenPaintProperty<Color, attributes::fill_color, uniforms::fill_color, true> {
static Color defaultValue() { return Color::black(); }
static constexpr const char *name() { return "text-color"; }
@@ -253,6 +249,10 @@ struct TextColor : DataDrivenPaintProperty<Color, attributes::fill_color, unifor
template<typename T> static bool hasOverride(const T& t) { return !!t.textColor; };
};
struct TextHaloBlur : DataDrivenPaintProperty<float, attributes::halo_blur, uniforms::halo_blur> {
static float defaultValue() { return 0; }
};
struct TextHaloColor : DataDrivenPaintProperty<Color, attributes::halo_color, uniforms::halo_color> {
static Color defaultValue() { return {}; }
};
@@ -261,8 +261,8 @@ struct TextHaloWidth : DataDrivenPaintProperty<float, attributes::halo_width, un
static float defaultValue() { return 0; }
};
struct TextHaloBlur : DataDrivenPaintProperty<float, attributes::halo_blur, uniforms::halo_blur> {
static float defaultValue() { return 0; }
struct TextOpacity : DataDrivenPaintProperty<float, attributes::opacity, uniforms::opacity> {
static float defaultValue() { return 1; }
};
struct TextTranslate : PaintProperty<std::array<float, 2>> {
@@ -274,61 +274,61 @@ struct TextTranslateAnchor : PaintProperty<TranslateAnchorType> {
};
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,
TextJustify,
TextRadialOffset,
TextVariableAnchor,
TextAnchor,
TextMaxAngle,
TextRotate,
TextPadding,
TextKeepUpright,
TextTransform,
TextOffset,
TextAllowOverlap,
TextIgnorePlacement,
TextOptional
TextJustify,
TextKeepUpright,
TextLetterSpacing,
TextLineHeight,
TextMaxAngle,
TextMaxWidth,
TextOffset,
TextOptional,
TextPadding,
TextPitchAlignment,
TextRadialOffset,
TextRotate,
TextRotationAlignment,
TextSize,
TextTransform,
TextVariableAnchor
> {};
class SymbolPaintProperties : public Properties<
IconOpacity,
IconColor,
IconHaloBlur,
IconHaloColor,
IconHaloWidth,
IconHaloBlur,
IconOpacity,
IconTranslate,
IconTranslateAnchor,
TextOpacity,
TextColor,
TextHaloBlur,
TextHaloColor,
TextHaloWidth,
TextHaloBlur,
TextOpacity,
TextTranslate,
TextTranslateAnchor
> {};

View File

@@ -50,32 +50,6 @@ TransitionOptions Light::getAnchorTransition() const {
return impl->properties.template get<LightAnchor>().options;
}
Position Light::getDefaultPosition() {
return LightPosition::defaultValue();
}
PropertyValue<Position> Light::getPosition() const {
return impl->properties.template get<LightPosition>().value;
}
void Light::setPosition(PropertyValue<Position> property) {
auto impl_ = mutableImpl();
impl_->properties.template get<LightPosition>().value = property;
impl = std::move(impl_);
observer->onLightChanged(*this);
}
void Light::setPositionTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->properties.template get<LightPosition>().options = options;
impl = std::move(impl_);
observer->onLightChanged(*this);
}
TransitionOptions Light::getPositionTransition() const {
return impl->properties.template get<LightPosition>().options;
}
Color Light::getDefaultColor() {
return LightColor::defaultValue();
}
@@ -128,6 +102,32 @@ TransitionOptions Light::getIntensityTransition() const {
return impl->properties.template get<LightIntensity>().options;
}
Position Light::getDefaultPosition() {
return LightPosition::defaultValue();
}
PropertyValue<Position> Light::getPosition() const {
return impl->properties.template get<LightPosition>().value;
}
void Light::setPosition(PropertyValue<Position> property) {
auto impl_ = mutableImpl();
impl_->properties.template get<LightPosition>().value = property;
impl = std::move(impl_);
observer->onLightChanged(*this);
}
void Light::setPositionTransition(const TransitionOptions& options) {
auto impl_ = mutableImpl();
impl_->properties.template get<LightPosition>().options = options;
impl = std::move(impl_);
observer->onLightChanged(*this);
}
TransitionOptions Light::getPositionTransition() const {
return impl->properties.template get<LightPosition>().options;
}
} // namespace style
} // namespace mbgl

View File

@@ -142,5 +142,5 @@ TEST(Stringify, Layout) {
SymbolLayoutProperties::Unevaluated layout;
layout.get<SymbolAvoidEdges>() = true;
layout.get<IconPadding>() = 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}");
}