summaryrefslogtreecommitdiff
path: root/platform/darwin/src
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src')
-rw-r--r--platform/darwin/src/MGLFillExtrusionStyleLayer.h21
-rw-r--r--platform/darwin/src/MGLFillExtrusionStyleLayer.mm18
2 files changed, 39 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLFillExtrusionStyleLayer.h b/platform/darwin/src/MGLFillExtrusionStyleLayer.h
index 6e807c1b44..c35a2374ed 100644
--- a/platform/darwin/src/MGLFillExtrusionStyleLayer.h
+++ b/platform/darwin/src/MGLFillExtrusionStyleLayer.h
@@ -334,6 +334,27 @@ MGL_EXPORT
@property (nonatomic, null_resettable) NSExpression *fillExtrusionTranslateAnchor __attribute__((unavailable("Use fillExtrusionTranslationAnchor instead.")));
+/**
+ 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.
+
+ 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 *fillExtrusionVerticalGradient;
+
@end
/**
diff --git a/platform/darwin/src/MGLFillExtrusionStyleLayer.mm b/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
index 03676a4ed5..ef5b0fcdbe 100644
--- a/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
+++ b/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
@@ -336,6 +336,24 @@ namespace mbgl {
return self.fillExtrusionTranslationAnchor;
}
+- (void)setFillExtrusionVerticalGradient:(NSExpression *)fillExtrusionVerticalGradient {
+ MGLAssertStyleLayerIsValid();
+ MGLLogDebug(@"Setting fillExtrusionVerticalGradient: %@", fillExtrusionVerticalGradient);
+
+ auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue<mbgl::style::PropertyValue<bool>>(fillExtrusionVerticalGradient, false);
+ self.rawLayer->setFillExtrusionVerticalGradient(mbglValue);
+}
+
+- (NSExpression *)fillExtrusionVerticalGradient {
+ MGLAssertStyleLayerIsValid();
+
+ auto propertyValue = self.rawLayer->getFillExtrusionVerticalGradient();
+ if (propertyValue.isUndefined()) {
+ propertyValue = self.rawLayer->getDefaultFillExtrusionVerticalGradient();
+ }
+ return MGLStyleValueTransformer<bool, NSNumber *>().toExpression(propertyValue);
+}
+
@end
@implementation NSValue (MGLFillExtrusionStyleLayerAdditions)