summaryrefslogtreecommitdiff
path: root/platform/darwin/src
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-11-28 11:29:50 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2018-11-29 14:23:55 +0200
commite64c28613a3e2f0ee9591ab412a466d52ca17551 (patch)
tree914cc344412361849746808ae150a6a2718ec718 /platform/darwin/src
parent217acb894893f64c35a876f573cc616321cfeafd (diff)
downloadqtlocation-mapboxgl-e64c28613a3e2f0ee9591ab412a466d52ca17551.tar.gz
[core] Support fill-extrusion-vertical-gradient
Diffstat (limited to 'platform/darwin/src')
-rw-r--r--platform/darwin/src/MGLFillExtrusionStyleLayer.h27
-rw-r--r--platform/darwin/src/MGLFillExtrusionStyleLayer.mm25
2 files changed, 52 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLFillExtrusionStyleLayer.h b/platform/darwin/src/MGLFillExtrusionStyleLayer.h
index 6e807c1b44..98eb6b3c20 100644
--- a/platform/darwin/src/MGLFillExtrusionStyleLayer.h
+++ b/platform/darwin/src/MGLFillExtrusionStyleLayer.h
@@ -164,6 +164,33 @@ MGL_EXPORT
@property (nonatomic) MGLTransition fillExtrusionColorTransition;
/**
+ Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If
+ true, sides will be shaded slightly darker farther down.
+
+ The default value of this property is an expression that evaluates to `YES`.
+ Set this property to `nil` to reset it to the default value.
+
+ This attribute corresponds to the <a
+ href="https://www.mapbox.com/mapbox-gl-style-spec/#paint-fill-extrusion-vertical-gradient"><code>fill-extrusion-vertical-gradient</code></a>
+ layout property in the Mapbox Style Specification.
+
+ You can set this property to an expression containing any of the following:
+
+ * Constant Boolean values
+ * Predefined functions, including mathematical and string operators
+ * Conditional expressions
+ * Variable assignments and references to assigned variables
+ * Step functions applied to the `$zoomLevel` variable
+
+ This property does not support applying interpolation functions to the
+ `$zoomLevel` variable or applying interpolation or step functions to feature
+ attributes.
+ */
+@property (nonatomic, null_resettable) NSExpression *fillExtrusionHasVerticalGradient;
+
+@property (nonatomic, null_resettable) NSExpression *fillExtrusionVerticalGradient __attribute__((unavailable("Use fillExtrusionHasVerticalGradient instead.")));
+
+/**
The height with which to extrude this layer.
This property is measured in meters.
diff --git a/platform/darwin/src/MGLFillExtrusionStyleLayer.mm b/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
index 03676a4ed5..e4e9c707ea 100644
--- a/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
+++ b/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
@@ -156,6 +156,31 @@ namespace mbgl {
return transition;
}
+- (void)setFillExtrusionHasVerticalGradient:(NSExpression *)fillExtrusionHasVerticalGradient {
+ MGLAssertStyleLayerIsValid();
+ MGLLogDebug(@"Setting fillExtrusionHasVerticalGradient: %@", fillExtrusionHasVerticalGradient);
+
+ auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue<mbgl::style::PropertyValue<bool>>(fillExtrusionHasVerticalGradient, false);
+ self.rawLayer->setFillExtrusionVerticalGradient(mbglValue);
+}
+
+- (NSExpression *)fillExtrusionHasVerticalGradient {
+ MGLAssertStyleLayerIsValid();
+
+ auto propertyValue = self.rawLayer->getFillExtrusionVerticalGradient();
+ if (propertyValue.isUndefined()) {
+ propertyValue = self.rawLayer->getDefaultFillExtrusionVerticalGradient();
+ }
+ return MGLStyleValueTransformer<bool, NSNumber *>().toExpression(propertyValue);
+}
+
+- (void)setFillExtrusionVerticalGradient:(NSExpression *)fillExtrusionVerticalGradient {
+}
+
+- (NSExpression *)fillExtrusionVerticalGradient {
+ return self.fillExtrusionHasVerticalGradient;
+}
+
- (void)setFillExtrusionHeight:(NSExpression *)fillExtrusionHeight {
MGLAssertStyleLayerIsValid();
MGLLogDebug(@"Setting fillExtrusionHeight: %@", fillExtrusionHeight);