// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`.
#import "MGLFoundation.h"
#import "MGLForegroundStyleLayer.h"
NS_ASSUME_NONNULL_BEGIN
/**
Direction of light source when map is rotated.
Values of this type are used in the `MGLHillshadeStyleLayer.hillshadeIlluminationAnchor`
property.
*/
typedef NS_ENUM(NSUInteger, MGLHillshadeIlluminationAnchor) {
/**
The hillshade illumination is relative to the north direction.
*/
MGLHillshadeIlluminationAnchorMap,
/**
The hillshade illumination is relative to the top of the viewport.
*/
MGLHillshadeIlluminationAnchorViewport,
};
/**
An `MGLHillshadeStyleLayer` is a style layer that renders raster digital elevation
model (DEM) tiles on the map.
Use a hillshade style layer to configure the color parameters of raster tiles
loaded by an `MGLRasterDEMSource` object. For example, you could use a
hillshade style layer to render Mapbox
Terrain-RGB data.
To display posterized hillshading based on vector shapes, as with the Mapbox Terrain
source, use an `MGLVectorTileSource` object in conjunction with several
`MGLFillStyleLayer` objects.
You can access an existing hillshade style layer using the
`-[MGLStyle layerWithIdentifier:]` method if you know its identifier;
otherwise, find it using the `MGLStyle.layers` property. You can also create a
new hillshade style layer and add it to the style using a method such as
`-[MGLStyle addLayer:]`.
### Example
```swift
let layer = MGLHillshadeStyleLayer(identifier: "hills", source: source)
layer.hillshadeExaggeration = NSExpression(forConstantValue: 0.6)
if let canalShadowLayer = mapView.style?.layer(withIdentifier: "waterway-river-canal-shadow") {
mapView.style?.insertLayer(layer, below: canalShadowLayer)
}
```
*/
MGL_EXPORT
@interface MGLHillshadeStyleLayer : MGLForegroundStyleLayer
/**
Returns a hillshade style layer initialized with an identifier and source.
After initializing and configuring the style layer, add it to a map view’s
style using the `-[MGLStyle addLayer:]` or
`-[MGLStyle insertLayer:belowLayer:]` method.
@param identifier A string that uniquely identifies the source in the style to
which it is added.
@param source The source from which to obtain the data to style. If the source
has not yet been added to the current style, the behavior is undefined.
@return An initialized foreground style layer.
*/
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source;
#pragma mark - Accessing the Paint Attributes
#if TARGET_OS_IPHONE
/**
The shading color used to accentuate rugged terrain like sharp cliffs and
gorges.
The default value of this property is an expression that evaluates to
`UIColor.blackColor`. 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 `UIColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeAccentColor;
#else
/**
The shading color used to accentuate rugged terrain like sharp cliffs and
gorges.
The default value of this property is an expression that evaluates to
`NSColor.blackColor`. 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 `NSColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeAccentColor;
#endif
/**
The transition affecting any changes to this layer’s `hillshadeAccentColor` property.
This property corresponds to the `hillshade-accent-color-transition` property in the style JSON file format.
*/
@property (nonatomic) MGLTransition hillshadeAccentColorTransition;
/**
Intensity of the hillshade
The default value of this property is an expression that evaluates to the float
`0.5`. 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 numeric values between 0 and 1 inclusive
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeExaggeration;
/**
The transition affecting any changes to this layer’s `hillshadeExaggeration` property.
This property corresponds to the `hillshade-exaggeration-transition` property in the style JSON file format.
*/
@property (nonatomic) MGLTransition hillshadeExaggerationTransition;
#if TARGET_OS_IPHONE
/**
The shading color of areas that faces towards the light source.
The default value of this property is an expression that evaluates to
`UIColor.whiteColor`. 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 `UIColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeHighlightColor;
#else
/**
The shading color of areas that faces towards the light source.
The default value of this property is an expression that evaluates to
`NSColor.whiteColor`. 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 `NSColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeHighlightColor;
#endif
/**
The transition affecting any changes to this layer’s `hillshadeHighlightColor` property.
This property corresponds to the `hillshade-highlight-color-transition` property in the style JSON file format.
*/
@property (nonatomic) MGLTransition hillshadeHighlightColorTransition;
/**
Direction of light source when map is rotated.
The default value of this property is an expression that evaluates to
`viewport`. 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 `MGLHillshadeIlluminationAnchor` values
* Any of the following constant string values:
* `map`: The hillshade illumination is relative to the north direction.
* `viewport`: The hillshade illumination is relative to the top of the
viewport.
* 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 *hillshadeIlluminationAnchor;
/**
The direction of the light source used to generate the hillshading with 0 as
the top of the viewport if `hillshadeIlluminationAnchor` is set to
`MGLHillshadeIlluminationAnchorViewport` and due north if
`hillshadeIlluminationAnchor` is set to `MGLHillshadeIlluminationAnchorMap`.
The default value of this property is an expression that evaluates to the float
`335`. 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 numeric values between 0 and 359 inclusive
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeIlluminationDirection;
#if TARGET_OS_IPHONE
/**
The shading color of areas that face away from the light source.
The default value of this property is an expression that evaluates to
`UIColor.blackColor`. 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 `UIColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeShadowColor;
#else
/**
The shading color of areas that face away from the light source.
The default value of this property is an expression that evaluates to
`NSColor.blackColor`. 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 `NSColor` values
* Predefined functions, including mathematical and string operators
* Conditional expressions
* Variable assignments and references to assigned variables
* Interpolation and step functions applied to the `$zoomLevel` variable
This property does not support applying interpolation or step functions to
feature attributes.
*/
@property (nonatomic, null_resettable) NSExpression *hillshadeShadowColor;
#endif
/**
The transition affecting any changes to this layer’s `hillshadeShadowColor` property.
This property corresponds to the `hillshade-shadow-color-transition` property in the style JSON file format.
*/
@property (nonatomic) MGLTransition hillshadeShadowColorTransition;
@end
/**
Methods for wrapping an enumeration value for a style layer attribute in an
`MGLHillshadeStyleLayer` object and unwrapping its raw value.
*/
@interface NSValue (MGLHillshadeStyleLayerAdditions)
#pragma mark Working with Hillshade Style Layer Attribute Values
/**
Creates a new value object containing the given `MGLHillshadeIlluminationAnchor` enumeration.
@param hillshadeIlluminationAnchor The value for the new object.
@return A new value object that contains the enumeration value.
*/
+ (instancetype)valueWithMGLHillshadeIlluminationAnchor:(MGLHillshadeIlluminationAnchor)hillshadeIlluminationAnchor;
/**
The `MGLHillshadeIlluminationAnchor` enumeration representation of the value.
*/
@property (readonly) MGLHillshadeIlluminationAnchor MGLHillshadeIlluminationAnchorValue;
@end
NS_ASSUME_NONNULL_END