diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2020-05-14 00:56:21 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2020-05-26 20:35:05 +0300 |
commit | 1bc45e9022e4b04b53dad189da1fc1bdd30d1e6a (patch) | |
tree | 2440659e6406611a59a70f40a5f196fb3557b053 /src | |
parent | fe192abc3c5d3f7e7471fda966e1e5b380c613da (diff) | |
download | qtlocation-mapboxgl-1bc45e9022e4b04b53dad189da1fc1bdd30d1e6a.tar.gz |
[core] Implement getPropertyDefaultValueInternal() in layer classes
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/style/layer.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/style/layers/background_layer.cpp | 23 | ||||
-rw-r--r-- | src/mbgl/style/layers/circle_layer.cpp | 57 | ||||
-rw-r--r-- | src/mbgl/style/layers/fill_extrusion_layer.cpp | 43 | ||||
-rw-r--r-- | src/mbgl/style/layers/fill_layer.cpp | 41 | ||||
-rw-r--r-- | src/mbgl/style/layers/heatmap_layer.cpp | 31 | ||||
-rw-r--r-- | src/mbgl/style/layers/hillshade_layer.cpp | 35 | ||||
-rw-r--r-- | src/mbgl/style/layers/layer.cpp.ejs | 23 | ||||
-rw-r--r-- | src/mbgl/style/layers/line_layer.cpp | 65 | ||||
-rw-r--r-- | src/mbgl/style/layers/location_indicator_layer.cpp | 57 | ||||
-rw-r--r-- | src/mbgl/style/layers/raster_layer.cpp | 43 | ||||
-rw-r--r-- | src/mbgl/style/layers/symbol_layer.cpp | 149 |
12 files changed, 570 insertions, 3 deletions
diff --git a/src/mbgl/style/layer.cpp b/src/mbgl/style/layer.cpp index f0e8967785..73480cc2f7 100644 --- a/src/mbgl/style/layer.cpp +++ b/src/mbgl/style/layer.cpp @@ -53,10 +53,10 @@ StyleProperty getLayerPropertyDefaultValue(Property property) { case Property::SourceLayer: return makeConstantStyleProperty(std::string()); case Property::Type: - return kUndefinedProperty; + return {}; } assert(false); - return kUndefinedProperty; + return {}; } StyleProperty getLayerProperty(const Layer* layer, Property property) { @@ -289,7 +289,7 @@ const LayerTypeInfo* Layer::getTypeInfo() const noexcept { } StyleProperty Layer::getPropertyDefaultValueInternal(const std::string&) const { - return kUndefinedProperty; + return {}; } } // namespace style diff --git a/src/mbgl/style/layers/background_layer.cpp b/src/mbgl/style/layers/background_layer.cpp index 55f0868796..c3679a97b6 100644 --- a/src/mbgl/style/layers/background_layer.cpp +++ b/src/mbgl/style/layers/background_layer.cpp @@ -278,6 +278,29 @@ StyleProperty BackgroundLayer::getPropertyInternal(const std::string& name) cons return getLayerProperty(*this, name); } +StyleProperty BackgroundLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::BackgroundColor: + return makeStyleProperty(BackgroundLayer::getDefaultBackgroundColor()); + case Property::BackgroundOpacity: + return makeStyleProperty(BackgroundLayer::getDefaultBackgroundOpacity()); + case Property::BackgroundPattern: + return makeStyleProperty(BackgroundLayer::getDefaultBackgroundPattern()); + case Property::BackgroundColorTransition: + break; + case Property::BackgroundOpacityTransition: + break; + case Property::BackgroundPatternTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> BackgroundLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/circle_layer.cpp b/src/mbgl/style/layers/circle_layer.cpp index 9fd3492c16..f83e57eb25 100644 --- a/src/mbgl/style/layers/circle_layer.cpp +++ b/src/mbgl/style/layers/circle_layer.cpp @@ -684,6 +684,63 @@ StyleProperty CircleLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty CircleLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::CircleBlur: + return makeStyleProperty(CircleLayer::getDefaultCircleBlur()); + case Property::CircleColor: + return makeStyleProperty(CircleLayer::getDefaultCircleColor()); + case Property::CircleOpacity: + return makeStyleProperty(CircleLayer::getDefaultCircleOpacity()); + case Property::CirclePitchAlignment: + return makeStyleProperty(CircleLayer::getDefaultCirclePitchAlignment()); + case Property::CirclePitchScale: + return makeStyleProperty(CircleLayer::getDefaultCirclePitchScale()); + case Property::CircleRadius: + return makeStyleProperty(CircleLayer::getDefaultCircleRadius()); + case Property::CircleStrokeColor: + return makeStyleProperty(CircleLayer::getDefaultCircleStrokeColor()); + case Property::CircleStrokeOpacity: + return makeStyleProperty(CircleLayer::getDefaultCircleStrokeOpacity()); + case Property::CircleStrokeWidth: + return makeStyleProperty(CircleLayer::getDefaultCircleStrokeWidth()); + case Property::CircleTranslate: + return makeStyleProperty(CircleLayer::getDefaultCircleTranslate()); + case Property::CircleTranslateAnchor: + return makeStyleProperty(CircleLayer::getDefaultCircleTranslateAnchor()); + case Property::CircleSortKey: + return makeStyleProperty(CircleLayer::getDefaultCircleSortKey()); + case Property::CircleBlurTransition: + break; + case Property::CircleColorTransition: + break; + case Property::CircleOpacityTransition: + break; + case Property::CirclePitchAlignmentTransition: + break; + case Property::CirclePitchScaleTransition: + break; + case Property::CircleRadiusTransition: + break; + case Property::CircleStrokeColorTransition: + break; + case Property::CircleStrokeOpacityTransition: + break; + case Property::CircleStrokeWidthTransition: + break; + case Property::CircleTranslateTransition: + break; + case Property::CircleTranslateAnchorTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> CircleLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/fill_extrusion_layer.cpp b/src/mbgl/style/layers/fill_extrusion_layer.cpp index d40f42fe6e..d11626d897 100644 --- a/src/mbgl/style/layers/fill_extrusion_layer.cpp +++ b/src/mbgl/style/layers/fill_extrusion_layer.cpp @@ -525,6 +525,49 @@ StyleProperty FillExtrusionLayer::getPropertyInternal(const std::string& name) c return getLayerProperty(*this, name); } +StyleProperty FillExtrusionLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::FillExtrusionBase: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionBase()); + case Property::FillExtrusionColor: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionColor()); + case Property::FillExtrusionHeight: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionHeight()); + case Property::FillExtrusionOpacity: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionOpacity()); + case Property::FillExtrusionPattern: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionPattern()); + case Property::FillExtrusionTranslate: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionTranslate()); + case Property::FillExtrusionTranslateAnchor: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionTranslateAnchor()); + case Property::FillExtrusionVerticalGradient: + return makeStyleProperty(FillExtrusionLayer::getDefaultFillExtrusionVerticalGradient()); + case Property::FillExtrusionBaseTransition: + break; + case Property::FillExtrusionColorTransition: + break; + case Property::FillExtrusionHeightTransition: + break; + case Property::FillExtrusionOpacityTransition: + break; + case Property::FillExtrusionPatternTransition: + break; + case Property::FillExtrusionTranslateTransition: + break; + case Property::FillExtrusionTranslateAnchorTransition: + break; + case Property::FillExtrusionVerticalGradientTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> FillExtrusionLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/fill_layer.cpp b/src/mbgl/style/layers/fill_layer.cpp index 7f057d7d2e..1023d73191 100644 --- a/src/mbgl/style/layers/fill_layer.cpp +++ b/src/mbgl/style/layers/fill_layer.cpp @@ -502,6 +502,47 @@ StyleProperty FillLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty FillLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::FillAntialias: + return makeStyleProperty(FillLayer::getDefaultFillAntialias()); + case Property::FillColor: + return makeStyleProperty(FillLayer::getDefaultFillColor()); + case Property::FillOpacity: + return makeStyleProperty(FillLayer::getDefaultFillOpacity()); + case Property::FillOutlineColor: + return makeStyleProperty(FillLayer::getDefaultFillOutlineColor()); + case Property::FillPattern: + return makeStyleProperty(FillLayer::getDefaultFillPattern()); + case Property::FillTranslate: + return makeStyleProperty(FillLayer::getDefaultFillTranslate()); + case Property::FillTranslateAnchor: + return makeStyleProperty(FillLayer::getDefaultFillTranslateAnchor()); + case Property::FillSortKey: + return makeStyleProperty(FillLayer::getDefaultFillSortKey()); + case Property::FillAntialiasTransition: + break; + case Property::FillColorTransition: + break; + case Property::FillOpacityTransition: + break; + case Property::FillOutlineColorTransition: + break; + case Property::FillPatternTransition: + break; + case Property::FillTranslateTransition: + break; + case Property::FillTranslateAnchorTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> FillLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/heatmap_layer.cpp b/src/mbgl/style/layers/heatmap_layer.cpp index 3e90dcb33a..f58a885233 100644 --- a/src/mbgl/style/layers/heatmap_layer.cpp +++ b/src/mbgl/style/layers/heatmap_layer.cpp @@ -374,6 +374,37 @@ StyleProperty HeatmapLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty HeatmapLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::HeatmapColor: + return makeStyleProperty(HeatmapLayer::getDefaultHeatmapColor()); + case Property::HeatmapIntensity: + return makeStyleProperty(HeatmapLayer::getDefaultHeatmapIntensity()); + case Property::HeatmapOpacity: + return makeStyleProperty(HeatmapLayer::getDefaultHeatmapOpacity()); + case Property::HeatmapRadius: + return makeStyleProperty(HeatmapLayer::getDefaultHeatmapRadius()); + case Property::HeatmapWeight: + return makeStyleProperty(HeatmapLayer::getDefaultHeatmapWeight()); + case Property::HeatmapColorTransition: + break; + case Property::HeatmapIntensityTransition: + break; + case Property::HeatmapOpacityTransition: + break; + case Property::HeatmapRadiusTransition: + break; + case Property::HeatmapWeightTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> HeatmapLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/hillshade_layer.cpp b/src/mbgl/style/layers/hillshade_layer.cpp index 22aec9ca6e..333dbb2780 100644 --- a/src/mbgl/style/layers/hillshade_layer.cpp +++ b/src/mbgl/style/layers/hillshade_layer.cpp @@ -418,6 +418,41 @@ StyleProperty HillshadeLayer::getPropertyInternal(const std::string& name) const return getLayerProperty(*this, name); } +StyleProperty HillshadeLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::HillshadeAccentColor: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeAccentColor()); + case Property::HillshadeExaggeration: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeExaggeration()); + case Property::HillshadeHighlightColor: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeHighlightColor()); + case Property::HillshadeIlluminationAnchor: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeIlluminationAnchor()); + case Property::HillshadeIlluminationDirection: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeIlluminationDirection()); + case Property::HillshadeShadowColor: + return makeStyleProperty(HillshadeLayer::getDefaultHillshadeShadowColor()); + case Property::HillshadeAccentColorTransition: + break; + case Property::HillshadeExaggerationTransition: + break; + case Property::HillshadeHighlightColorTransition: + break; + case Property::HillshadeIlluminationAnchorTransition: + break; + case Property::HillshadeIlluminationDirectionTransition: + break; + case Property::HillshadeShadowColorTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> HillshadeLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/layer.cpp.ejs b/src/mbgl/style/layers/layer.cpp.ejs index 383d7444d6..27211a77f1 100644 --- a/src/mbgl/style/layers/layer.cpp.ejs +++ b/src/mbgl/style/layers/layer.cpp.ejs @@ -339,6 +339,29 @@ StyleProperty <%- camelize(type) %>Layer::getPropertyInternal(const std::string& return getLayerProperty(*this, name); } +StyleProperty <%- camelize(type) %>Layer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { +<% for (const property of paintProperties) { -%> + case Property::<%- camelize(property.name) %>: + return makeStyleProperty(<%- camelize(type) %>Layer::getDefault<%- camelize(property.name) %>()); +<% } -%> +<% for (const property of layoutProperties) { -%> + case Property::<%- camelize(property.name) %>: + return makeStyleProperty(<%- camelize(type) %>Layer::getDefault<%- camelize(property.name) %>()); +<% } -%> +<% for (const property of paintProperties) { -%> + case Property::<%- camelize(property.name) %>Transition: + break; +<% } -%> + } + return {}; +} + Mutable<Layer::Impl> <%- camelize(type) %>Layer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/line_layer.cpp b/src/mbgl/style/layers/line_layer.cpp index 9c6250984f..cb12b05c7c 100644 --- a/src/mbgl/style/layers/line_layer.cpp +++ b/src/mbgl/style/layers/line_layer.cpp @@ -800,6 +800,71 @@ StyleProperty LineLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty LineLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::LineBlur: + return makeStyleProperty(LineLayer::getDefaultLineBlur()); + case Property::LineColor: + return makeStyleProperty(LineLayer::getDefaultLineColor()); + case Property::LineDasharray: + return makeStyleProperty(LineLayer::getDefaultLineDasharray()); + case Property::LineGapWidth: + return makeStyleProperty(LineLayer::getDefaultLineGapWidth()); + case Property::LineGradient: + return makeStyleProperty(LineLayer::getDefaultLineGradient()); + case Property::LineOffset: + return makeStyleProperty(LineLayer::getDefaultLineOffset()); + case Property::LineOpacity: + return makeStyleProperty(LineLayer::getDefaultLineOpacity()); + case Property::LinePattern: + return makeStyleProperty(LineLayer::getDefaultLinePattern()); + case Property::LineTranslate: + return makeStyleProperty(LineLayer::getDefaultLineTranslate()); + case Property::LineTranslateAnchor: + return makeStyleProperty(LineLayer::getDefaultLineTranslateAnchor()); + case Property::LineWidth: + return makeStyleProperty(LineLayer::getDefaultLineWidth()); + case Property::LineCap: + return makeStyleProperty(LineLayer::getDefaultLineCap()); + case Property::LineJoin: + return makeStyleProperty(LineLayer::getDefaultLineJoin()); + case Property::LineMiterLimit: + return makeStyleProperty(LineLayer::getDefaultLineMiterLimit()); + case Property::LineRoundLimit: + return makeStyleProperty(LineLayer::getDefaultLineRoundLimit()); + case Property::LineSortKey: + return makeStyleProperty(LineLayer::getDefaultLineSortKey()); + case Property::LineBlurTransition: + break; + case Property::LineColorTransition: + break; + case Property::LineDasharrayTransition: + break; + case Property::LineGapWidthTransition: + break; + case Property::LineGradientTransition: + break; + case Property::LineOffsetTransition: + break; + case Property::LineOpacityTransition: + break; + case Property::LinePatternTransition: + break; + case Property::LineTranslateTransition: + break; + case Property::LineTranslateAnchorTransition: + break; + case Property::LineWidthTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> LineLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/location_indicator_layer.cpp b/src/mbgl/style/layers/location_indicator_layer.cpp index 8ef8aa41fc..cbd47684cb 100644 --- a/src/mbgl/style/layers/location_indicator_layer.cpp +++ b/src/mbgl/style/layers/location_indicator_layer.cpp @@ -684,6 +684,63 @@ StyleProperty LocationIndicatorLayer::getPropertyInternal(const std::string& nam return getLayerProperty(*this, name); } +StyleProperty LocationIndicatorLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::AccuracyRadius: + return makeStyleProperty(LocationIndicatorLayer::getDefaultAccuracyRadius()); + case Property::AccuracyRadiusBorderColor: + return makeStyleProperty(LocationIndicatorLayer::getDefaultAccuracyRadiusBorderColor()); + case Property::AccuracyRadiusColor: + return makeStyleProperty(LocationIndicatorLayer::getDefaultAccuracyRadiusColor()); + case Property::Bearing: + return makeStyleProperty(LocationIndicatorLayer::getDefaultBearing()); + case Property::BearingImageSize: + return makeStyleProperty(LocationIndicatorLayer::getDefaultBearingImageSize()); + case Property::ImageTiltDisplacement: + return makeStyleProperty(LocationIndicatorLayer::getDefaultImageTiltDisplacement()); + case Property::Location: + return makeStyleProperty(LocationIndicatorLayer::getDefaultLocation()); + case Property::PerspectiveCompensation: + return makeStyleProperty(LocationIndicatorLayer::getDefaultPerspectiveCompensation()); + case Property::ShadowImageSize: + return makeStyleProperty(LocationIndicatorLayer::getDefaultShadowImageSize()); + case Property::TopImageSize: + return makeStyleProperty(LocationIndicatorLayer::getDefaultTopImageSize()); + case Property::BearingImage: + return makeStyleProperty(LocationIndicatorLayer::getDefaultBearingImage()); + case Property::ShadowImage: + return makeStyleProperty(LocationIndicatorLayer::getDefaultShadowImage()); + case Property::TopImage: + return makeStyleProperty(LocationIndicatorLayer::getDefaultTopImage()); + case Property::AccuracyRadiusTransition: + break; + case Property::AccuracyRadiusBorderColorTransition: + break; + case Property::AccuracyRadiusColorTransition: + break; + case Property::BearingTransition: + break; + case Property::BearingImageSizeTransition: + break; + case Property::ImageTiltDisplacementTransition: + break; + case Property::LocationTransition: + break; + case Property::PerspectiveCompensationTransition: + break; + case Property::ShadowImageSizeTransition: + break; + case Property::TopImageSizeTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> LocationIndicatorLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/raster_layer.cpp b/src/mbgl/style/layers/raster_layer.cpp index d8f8bbb892..cad24f43a5 100644 --- a/src/mbgl/style/layers/raster_layer.cpp +++ b/src/mbgl/style/layers/raster_layer.cpp @@ -503,6 +503,49 @@ StyleProperty RasterLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty RasterLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::RasterBrightnessMax: + return makeStyleProperty(RasterLayer::getDefaultRasterBrightnessMax()); + case Property::RasterBrightnessMin: + return makeStyleProperty(RasterLayer::getDefaultRasterBrightnessMin()); + case Property::RasterContrast: + return makeStyleProperty(RasterLayer::getDefaultRasterContrast()); + case Property::RasterFadeDuration: + return makeStyleProperty(RasterLayer::getDefaultRasterFadeDuration()); + case Property::RasterHueRotate: + return makeStyleProperty(RasterLayer::getDefaultRasterHueRotate()); + case Property::RasterOpacity: + return makeStyleProperty(RasterLayer::getDefaultRasterOpacity()); + case Property::RasterResampling: + return makeStyleProperty(RasterLayer::getDefaultRasterResampling()); + case Property::RasterSaturation: + return makeStyleProperty(RasterLayer::getDefaultRasterSaturation()); + case Property::RasterBrightnessMaxTransition: + break; + case Property::RasterBrightnessMinTransition: + break; + case Property::RasterContrastTransition: + break; + case Property::RasterFadeDurationTransition: + break; + case Property::RasterHueRotateTransition: + break; + case Property::RasterOpacityTransition: + break; + case Property::RasterResamplingTransition: + break; + case Property::RasterSaturationTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> RasterLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } diff --git a/src/mbgl/style/layers/symbol_layer.cpp b/src/mbgl/style/layers/symbol_layer.cpp index 4fd9e653dd..529d6868f2 100644 --- a/src/mbgl/style/layers/symbol_layer.cpp +++ b/src/mbgl/style/layers/symbol_layer.cpp @@ -1875,6 +1875,155 @@ StyleProperty SymbolLayer::getPropertyInternal(const std::string& name) const { return getLayerProperty(*this, name); } +StyleProperty SymbolLayer::getPropertyDefaultValueInternal(const std::string& name) const { + const auto it = layerProperties.find(name.c_str()); + if (it == layerProperties.end()) { + return {}; + } + + switch (static_cast<Property>(it->second)) { + case Property::IconColor: + return makeStyleProperty(SymbolLayer::getDefaultIconColor()); + case Property::IconHaloBlur: + return makeStyleProperty(SymbolLayer::getDefaultIconHaloBlur()); + case Property::IconHaloColor: + return makeStyleProperty(SymbolLayer::getDefaultIconHaloColor()); + case Property::IconHaloWidth: + return makeStyleProperty(SymbolLayer::getDefaultIconHaloWidth()); + case Property::IconOpacity: + return makeStyleProperty(SymbolLayer::getDefaultIconOpacity()); + case Property::IconTranslate: + return makeStyleProperty(SymbolLayer::getDefaultIconTranslate()); + case Property::IconTranslateAnchor: + return makeStyleProperty(SymbolLayer::getDefaultIconTranslateAnchor()); + case Property::TextColor: + return makeStyleProperty(SymbolLayer::getDefaultTextColor()); + case Property::TextHaloBlur: + return makeStyleProperty(SymbolLayer::getDefaultTextHaloBlur()); + case Property::TextHaloColor: + return makeStyleProperty(SymbolLayer::getDefaultTextHaloColor()); + case Property::TextHaloWidth: + return makeStyleProperty(SymbolLayer::getDefaultTextHaloWidth()); + case Property::TextOpacity: + return makeStyleProperty(SymbolLayer::getDefaultTextOpacity()); + case Property::TextTranslate: + return makeStyleProperty(SymbolLayer::getDefaultTextTranslate()); + case Property::TextTranslateAnchor: + return makeStyleProperty(SymbolLayer::getDefaultTextTranslateAnchor()); + case Property::IconAllowOverlap: + return makeStyleProperty(SymbolLayer::getDefaultIconAllowOverlap()); + case Property::IconAnchor: + return makeStyleProperty(SymbolLayer::getDefaultIconAnchor()); + case Property::IconIgnorePlacement: + return makeStyleProperty(SymbolLayer::getDefaultIconIgnorePlacement()); + case Property::IconImage: + return makeStyleProperty(SymbolLayer::getDefaultIconImage()); + case Property::IconKeepUpright: + return makeStyleProperty(SymbolLayer::getDefaultIconKeepUpright()); + case Property::IconOffset: + return makeStyleProperty(SymbolLayer::getDefaultIconOffset()); + case Property::IconOptional: + return makeStyleProperty(SymbolLayer::getDefaultIconOptional()); + case Property::IconPadding: + return makeStyleProperty(SymbolLayer::getDefaultIconPadding()); + case Property::IconPitchAlignment: + return makeStyleProperty(SymbolLayer::getDefaultIconPitchAlignment()); + case Property::IconRotate: + return makeStyleProperty(SymbolLayer::getDefaultIconRotate()); + case Property::IconRotationAlignment: + return makeStyleProperty(SymbolLayer::getDefaultIconRotationAlignment()); + case Property::IconSize: + return makeStyleProperty(SymbolLayer::getDefaultIconSize()); + case Property::IconTextFit: + return makeStyleProperty(SymbolLayer::getDefaultIconTextFit()); + case Property::IconTextFitPadding: + return makeStyleProperty(SymbolLayer::getDefaultIconTextFitPadding()); + case Property::SymbolAvoidEdges: + return makeStyleProperty(SymbolLayer::getDefaultSymbolAvoidEdges()); + case Property::SymbolPlacement: + return makeStyleProperty(SymbolLayer::getDefaultSymbolPlacement()); + case Property::SymbolSortKey: + return makeStyleProperty(SymbolLayer::getDefaultSymbolSortKey()); + case Property::SymbolSpacing: + return makeStyleProperty(SymbolLayer::getDefaultSymbolSpacing()); + case Property::SymbolZOrder: + return makeStyleProperty(SymbolLayer::getDefaultSymbolZOrder()); + case Property::TextAllowOverlap: + return makeStyleProperty(SymbolLayer::getDefaultTextAllowOverlap()); + case Property::TextAnchor: + return makeStyleProperty(SymbolLayer::getDefaultTextAnchor()); + case Property::TextField: + return makeStyleProperty(SymbolLayer::getDefaultTextField()); + case Property::TextFont: + return makeStyleProperty(SymbolLayer::getDefaultTextFont()); + case Property::TextIgnorePlacement: + return makeStyleProperty(SymbolLayer::getDefaultTextIgnorePlacement()); + case Property::TextJustify: + return makeStyleProperty(SymbolLayer::getDefaultTextJustify()); + case Property::TextKeepUpright: + return makeStyleProperty(SymbolLayer::getDefaultTextKeepUpright()); + case Property::TextLetterSpacing: + return makeStyleProperty(SymbolLayer::getDefaultTextLetterSpacing()); + case Property::TextLineHeight: + return makeStyleProperty(SymbolLayer::getDefaultTextLineHeight()); + case Property::TextMaxAngle: + return makeStyleProperty(SymbolLayer::getDefaultTextMaxAngle()); + case Property::TextMaxWidth: + return makeStyleProperty(SymbolLayer::getDefaultTextMaxWidth()); + case Property::TextOffset: + return makeStyleProperty(SymbolLayer::getDefaultTextOffset()); + case Property::TextOptional: + return makeStyleProperty(SymbolLayer::getDefaultTextOptional()); + case Property::TextPadding: + return makeStyleProperty(SymbolLayer::getDefaultTextPadding()); + case Property::TextPitchAlignment: + return makeStyleProperty(SymbolLayer::getDefaultTextPitchAlignment()); + case Property::TextRadialOffset: + return makeStyleProperty(SymbolLayer::getDefaultTextRadialOffset()); + case Property::TextRotate: + return makeStyleProperty(SymbolLayer::getDefaultTextRotate()); + case Property::TextRotationAlignment: + return makeStyleProperty(SymbolLayer::getDefaultTextRotationAlignment()); + case Property::TextSize: + return makeStyleProperty(SymbolLayer::getDefaultTextSize()); + case Property::TextTransform: + return makeStyleProperty(SymbolLayer::getDefaultTextTransform()); + case Property::TextVariableAnchor: + return makeStyleProperty(SymbolLayer::getDefaultTextVariableAnchor()); + case Property::TextWritingMode: + return makeStyleProperty(SymbolLayer::getDefaultTextWritingMode()); + case Property::IconColorTransition: + break; + case Property::IconHaloBlurTransition: + break; + case Property::IconHaloColorTransition: + break; + case Property::IconHaloWidthTransition: + break; + case Property::IconOpacityTransition: + break; + case Property::IconTranslateTransition: + break; + case Property::IconTranslateAnchorTransition: + break; + case Property::TextColorTransition: + break; + case Property::TextHaloBlurTransition: + break; + case Property::TextHaloColorTransition: + break; + case Property::TextHaloWidthTransition: + break; + case Property::TextOpacityTransition: + break; + case Property::TextTranslateTransition: + break; + case Property::TextTranslateAnchorTransition: + break; + } + return {}; +} + Mutable<Layer::Impl> SymbolLayer::mutableBaseImpl() const { return staticMutableCast<Layer::Impl>(mutableImpl()); } |