[ios, macos] Layer ownership refactor (#6904)
`MGLStyleLayer` was updated to support a raw pointer to the mbgl object, which is always initialized, either to the value returned by `mbgl::Map getLayer`, or for independently created objects, to the pointer value held in `pendingLayer`. In the latter case, this raw pointer value stays even after ownership of the object is transferred via `mbgl::Map addLayer`.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,50 +12,74 @@
|
||||
|
||||
@interface MGLBackgroundStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::BackgroundLayer *layer;
|
||||
@property (nonatomic) mbgl::style::BackgroundLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLBackgroundStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::BackgroundLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier]) {
|
||||
_layer = new mbgl::style::BackgroundLayer(identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::BackgroundLayer>(identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Accessing the Paint Attributes
|
||||
|
||||
- (void)setBackgroundColor:(MGLStyleValue<MGLColor *> *)backgroundColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(backgroundColor);
|
||||
self.layer->setBackgroundColor(mbglValue);
|
||||
self.rawLayer->setBackgroundColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)backgroundColor {
|
||||
auto propertyValue = self.layer->getBackgroundColor() ?: self.layer->getDefaultBackgroundColor();
|
||||
auto propertyValue = self.rawLayer->getBackgroundColor() ?: self.rawLayer->getDefaultBackgroundColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setBackgroundPattern:(MGLStyleValue<NSString *> *)backgroundPattern {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::string, NSString *>().toPropertyValue(backgroundPattern);
|
||||
self.layer->setBackgroundPattern(mbglValue);
|
||||
self.rawLayer->setBackgroundPattern(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSString *> *)backgroundPattern {
|
||||
auto propertyValue = self.layer->getBackgroundPattern() ?: self.layer->getDefaultBackgroundPattern();
|
||||
auto propertyValue = self.rawLayer->getBackgroundPattern() ?: self.rawLayer->getDefaultBackgroundPattern();
|
||||
return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setBackgroundOpacity:(MGLStyleValue<NSNumber *> *)backgroundOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(backgroundOpacity);
|
||||
self.layer->setBackgroundOpacity(mbglValue);
|
||||
self.rawLayer->setBackgroundOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)backgroundOpacity {
|
||||
auto propertyValue = self.layer->getBackgroundOpacity() ?: self.layer->getDefaultBackgroundOpacity();
|
||||
auto propertyValue = self.rawLayer->getBackgroundOpacity() ?: self.rawLayer->getDefaultBackgroundOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,111 +12,135 @@
|
||||
|
||||
@interface MGLCircleStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::CircleLayer *layer;
|
||||
@property (nonatomic) mbgl::style::CircleLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLCircleStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::CircleLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::CircleLayer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::CircleLayer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)sourceLayerIdentifier
|
||||
{
|
||||
auto layerID = self.layer->getSourceLayer();
|
||||
auto layerID = self.rawLayer->getSourceLayer();
|
||||
return layerID.empty() ? nil : @(layerID.c_str());
|
||||
}
|
||||
|
||||
- (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier
|
||||
{
|
||||
self.layer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
}
|
||||
|
||||
- (void)setPredicate:(NSPredicate *)predicate
|
||||
{
|
||||
self.layer->setFilter(predicate.mgl_filter);
|
||||
self.rawLayer->setFilter(predicate.mgl_filter);
|
||||
}
|
||||
|
||||
- (NSPredicate *)predicate
|
||||
{
|
||||
return [NSPredicate mgl_predicateWithFilter:self.layer->getFilter()];
|
||||
return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()];
|
||||
}
|
||||
|
||||
#pragma mark - Accessing the Paint Attributes
|
||||
|
||||
- (void)setCircleRadius:(MGLStyleValue<NSNumber *> *)circleRadius {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(circleRadius);
|
||||
self.layer->setCircleRadius(mbglValue);
|
||||
self.rawLayer->setCircleRadius(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)circleRadius {
|
||||
auto propertyValue = self.layer->getCircleRadius() ?: self.layer->getDefaultCircleRadius();
|
||||
auto propertyValue = self.rawLayer->getCircleRadius() ?: self.rawLayer->getDefaultCircleRadius();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCircleColor:(MGLStyleValue<MGLColor *> *)circleColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(circleColor);
|
||||
self.layer->setCircleColor(mbglValue);
|
||||
self.rawLayer->setCircleColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)circleColor {
|
||||
auto propertyValue = self.layer->getCircleColor() ?: self.layer->getDefaultCircleColor();
|
||||
auto propertyValue = self.rawLayer->getCircleColor() ?: self.rawLayer->getDefaultCircleColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCircleBlur:(MGLStyleValue<NSNumber *> *)circleBlur {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(circleBlur);
|
||||
self.layer->setCircleBlur(mbglValue);
|
||||
self.rawLayer->setCircleBlur(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)circleBlur {
|
||||
auto propertyValue = self.layer->getCircleBlur() ?: self.layer->getDefaultCircleBlur();
|
||||
auto propertyValue = self.rawLayer->getCircleBlur() ?: self.rawLayer->getDefaultCircleBlur();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCircleOpacity:(MGLStyleValue<NSNumber *> *)circleOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(circleOpacity);
|
||||
self.layer->setCircleOpacity(mbglValue);
|
||||
self.rawLayer->setCircleOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)circleOpacity {
|
||||
auto propertyValue = self.layer->getCircleOpacity() ?: self.layer->getDefaultCircleOpacity();
|
||||
auto propertyValue = self.rawLayer->getCircleOpacity() ?: self.rawLayer->getDefaultCircleOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCircleTranslate:(MGLStyleValue<NSValue *> *)circleTranslate {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(circleTranslate);
|
||||
self.layer->setCircleTranslate(mbglValue);
|
||||
self.rawLayer->setCircleTranslate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)circleTranslate {
|
||||
auto propertyValue = self.layer->getCircleTranslate() ?: self.layer->getDefaultCircleTranslate();
|
||||
auto propertyValue = self.rawLayer->getCircleTranslate() ?: self.rawLayer->getDefaultCircleTranslate();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCircleTranslateAnchor:(MGLStyleValue<NSValue *> *)circleTranslateAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toPropertyValue(circleTranslateAnchor);
|
||||
self.layer->setCircleTranslateAnchor(mbglValue);
|
||||
self.rawLayer->setCircleTranslateAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)circleTranslateAnchor {
|
||||
auto propertyValue = self.layer->getCircleTranslateAnchor() ?: self.layer->getDefaultCircleTranslateAnchor();
|
||||
auto propertyValue = self.rawLayer->getCircleTranslateAnchor() ?: self.rawLayer->getDefaultCircleTranslateAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setCirclePitchScale:(MGLStyleValue<NSValue *> *)circlePitchScale {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::CirclePitchScaleType, NSValue *>().toPropertyValue(circlePitchScale);
|
||||
self.layer->setCirclePitchScale(mbglValue);
|
||||
self.rawLayer->setCirclePitchScale(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)circlePitchScale {
|
||||
auto propertyValue = self.layer->getCirclePitchScale() ?: self.layer->getDefaultCirclePitchScale();
|
||||
auto propertyValue = self.rawLayer->getCirclePitchScale() ?: self.rawLayer->getDefaultCirclePitchScale();
|
||||
return MGLStyleValueTransformer<mbgl::style::CirclePitchScaleType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,111 +12,135 @@
|
||||
|
||||
@interface MGLFillStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::FillLayer *layer;
|
||||
@property (nonatomic) mbgl::style::FillLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLFillStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::FillLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::FillLayer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::FillLayer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)sourceLayerIdentifier
|
||||
{
|
||||
auto layerID = self.layer->getSourceLayer();
|
||||
auto layerID = self.rawLayer->getSourceLayer();
|
||||
return layerID.empty() ? nil : @(layerID.c_str());
|
||||
}
|
||||
|
||||
- (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier
|
||||
{
|
||||
self.layer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
}
|
||||
|
||||
- (void)setPredicate:(NSPredicate *)predicate
|
||||
{
|
||||
self.layer->setFilter(predicate.mgl_filter);
|
||||
self.rawLayer->setFilter(predicate.mgl_filter);
|
||||
}
|
||||
|
||||
- (NSPredicate *)predicate
|
||||
{
|
||||
return [NSPredicate mgl_predicateWithFilter:self.layer->getFilter()];
|
||||
return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()];
|
||||
}
|
||||
|
||||
#pragma mark - Accessing the Paint Attributes
|
||||
|
||||
- (void)setFillAntialias:(MGLStyleValue<NSNumber *> *)fillAntialias {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(fillAntialias);
|
||||
self.layer->setFillAntialias(mbglValue);
|
||||
self.rawLayer->setFillAntialias(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)fillAntialias {
|
||||
auto propertyValue = self.layer->getFillAntialias() ?: self.layer->getDefaultFillAntialias();
|
||||
auto propertyValue = self.rawLayer->getFillAntialias() ?: self.rawLayer->getDefaultFillAntialias();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillOpacity:(MGLStyleValue<NSNumber *> *)fillOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(fillOpacity);
|
||||
self.layer->setFillOpacity(mbglValue);
|
||||
self.rawLayer->setFillOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)fillOpacity {
|
||||
auto propertyValue = self.layer->getFillOpacity() ?: self.layer->getDefaultFillOpacity();
|
||||
auto propertyValue = self.rawLayer->getFillOpacity() ?: self.rawLayer->getDefaultFillOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillColor:(MGLStyleValue<MGLColor *> *)fillColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(fillColor);
|
||||
self.layer->setFillColor(mbglValue);
|
||||
self.rawLayer->setFillColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)fillColor {
|
||||
auto propertyValue = self.layer->getFillColor() ?: self.layer->getDefaultFillColor();
|
||||
auto propertyValue = self.rawLayer->getFillColor() ?: self.rawLayer->getDefaultFillColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillOutlineColor:(MGLStyleValue<MGLColor *> *)fillOutlineColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(fillOutlineColor);
|
||||
self.layer->setFillOutlineColor(mbglValue);
|
||||
self.rawLayer->setFillOutlineColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)fillOutlineColor {
|
||||
auto propertyValue = self.layer->getFillOutlineColor() ?: self.layer->getDefaultFillOutlineColor();
|
||||
auto propertyValue = self.rawLayer->getFillOutlineColor() ?: self.rawLayer->getDefaultFillOutlineColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillTranslate:(MGLStyleValue<NSValue *> *)fillTranslate {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(fillTranslate);
|
||||
self.layer->setFillTranslate(mbglValue);
|
||||
self.rawLayer->setFillTranslate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)fillTranslate {
|
||||
auto propertyValue = self.layer->getFillTranslate() ?: self.layer->getDefaultFillTranslate();
|
||||
auto propertyValue = self.rawLayer->getFillTranslate() ?: self.rawLayer->getDefaultFillTranslate();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillTranslateAnchor:(MGLStyleValue<NSValue *> *)fillTranslateAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toPropertyValue(fillTranslateAnchor);
|
||||
self.layer->setFillTranslateAnchor(mbglValue);
|
||||
self.rawLayer->setFillTranslateAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)fillTranslateAnchor {
|
||||
auto propertyValue = self.layer->getFillTranslateAnchor() ?: self.layer->getDefaultFillTranslateAnchor();
|
||||
auto propertyValue = self.rawLayer->getFillTranslateAnchor() ?: self.rawLayer->getDefaultFillTranslateAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setFillPattern:(MGLStyleValue<NSString *> *)fillPattern {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::string, NSString *>().toPropertyValue(fillPattern);
|
||||
self.layer->setFillPattern(mbglValue);
|
||||
self.rawLayer->setFillPattern(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSString *> *)fillPattern {
|
||||
auto propertyValue = self.layer->getFillPattern() ?: self.layer->getDefaultFillPattern();
|
||||
auto propertyValue = self.rawLayer->getFillPattern() ?: self.rawLayer->getDefaultFillPattern();
|
||||
return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,80 +12,86 @@
|
||||
|
||||
@interface MGLLineStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::LineLayer *layer;
|
||||
@property (nonatomic) mbgl::style::LineLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLLineStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::LineLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::LineLayer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::LineLayer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)sourceLayerIdentifier
|
||||
{
|
||||
auto layerID = self.layer->getSourceLayer();
|
||||
auto layerID = self.rawLayer->getSourceLayer();
|
||||
return layerID.empty() ? nil : @(layerID.c_str());
|
||||
}
|
||||
|
||||
- (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier
|
||||
{
|
||||
self.layer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
}
|
||||
|
||||
- (void)setPredicate:(NSPredicate *)predicate
|
||||
{
|
||||
self.layer->setFilter(predicate.mgl_filter);
|
||||
self.rawLayer->setFilter(predicate.mgl_filter);
|
||||
}
|
||||
|
||||
- (NSPredicate *)predicate
|
||||
{
|
||||
return [NSPredicate mgl_predicateWithFilter:self.layer->getFilter()];
|
||||
return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()];
|
||||
}
|
||||
|
||||
#pragma mark - Accessing the Layout Attributes
|
||||
|
||||
- (void)setLineCap:(MGLStyleValue<NSValue *> *)lineCap {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::LineCapType, NSValue *>().toPropertyValue(lineCap);
|
||||
self.layer->setLineCap(mbglValue);
|
||||
self.rawLayer->setLineCap(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)lineCap {
|
||||
auto propertyValue = self.layer->getLineCap() ?: self.layer->getDefaultLineCap();
|
||||
auto propertyValue = self.rawLayer->getLineCap() ?: self.rawLayer->getDefaultLineCap();
|
||||
return MGLStyleValueTransformer<mbgl::style::LineCapType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineJoin:(MGLStyleValue<NSValue *> *)lineJoin {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::LineJoinType, NSValue *>().toPropertyValue(lineJoin);
|
||||
self.layer->setLineJoin(mbglValue);
|
||||
self.rawLayer->setLineJoin(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)lineJoin {
|
||||
auto propertyValue = self.layer->getLineJoin() ?: self.layer->getDefaultLineJoin();
|
||||
auto propertyValue = self.rawLayer->getLineJoin() ?: self.rawLayer->getDefaultLineJoin();
|
||||
return MGLStyleValueTransformer<mbgl::style::LineJoinType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineMiterLimit:(MGLStyleValue<NSNumber *> *)lineMiterLimit {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineMiterLimit);
|
||||
self.layer->setLineMiterLimit(mbglValue);
|
||||
self.rawLayer->setLineMiterLimit(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineMiterLimit {
|
||||
auto propertyValue = self.layer->getLineMiterLimit() ?: self.layer->getDefaultLineMiterLimit();
|
||||
auto propertyValue = self.rawLayer->getLineMiterLimit() ?: self.rawLayer->getDefaultLineMiterLimit();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineRoundLimit:(MGLStyleValue<NSNumber *> *)lineRoundLimit {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineRoundLimit);
|
||||
self.layer->setLineRoundLimit(mbglValue);
|
||||
self.rawLayer->setLineRoundLimit(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineRoundLimit {
|
||||
auto propertyValue = self.layer->getLineRoundLimit() ?: self.layer->getDefaultLineRoundLimit();
|
||||
auto propertyValue = self.rawLayer->getLineRoundLimit() ?: self.rawLayer->getDefaultLineRoundLimit();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
@@ -92,102 +99,120 @@
|
||||
|
||||
- (void)setLineOpacity:(MGLStyleValue<NSNumber *> *)lineOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineOpacity);
|
||||
self.layer->setLineOpacity(mbglValue);
|
||||
self.rawLayer->setLineOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineOpacity {
|
||||
auto propertyValue = self.layer->getLineOpacity() ?: self.layer->getDefaultLineOpacity();
|
||||
auto propertyValue = self.rawLayer->getLineOpacity() ?: self.rawLayer->getDefaultLineOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineColor:(MGLStyleValue<MGLColor *> *)lineColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(lineColor);
|
||||
self.layer->setLineColor(mbglValue);
|
||||
self.rawLayer->setLineColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)lineColor {
|
||||
auto propertyValue = self.layer->getLineColor() ?: self.layer->getDefaultLineColor();
|
||||
auto propertyValue = self.rawLayer->getLineColor() ?: self.rawLayer->getDefaultLineColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineTranslate:(MGLStyleValue<NSValue *> *)lineTranslate {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(lineTranslate);
|
||||
self.layer->setLineTranslate(mbglValue);
|
||||
self.rawLayer->setLineTranslate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)lineTranslate {
|
||||
auto propertyValue = self.layer->getLineTranslate() ?: self.layer->getDefaultLineTranslate();
|
||||
auto propertyValue = self.rawLayer->getLineTranslate() ?: self.rawLayer->getDefaultLineTranslate();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineTranslateAnchor:(MGLStyleValue<NSValue *> *)lineTranslateAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toPropertyValue(lineTranslateAnchor);
|
||||
self.layer->setLineTranslateAnchor(mbglValue);
|
||||
self.rawLayer->setLineTranslateAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)lineTranslateAnchor {
|
||||
auto propertyValue = self.layer->getLineTranslateAnchor() ?: self.layer->getDefaultLineTranslateAnchor();
|
||||
auto propertyValue = self.rawLayer->getLineTranslateAnchor() ?: self.rawLayer->getDefaultLineTranslateAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineWidth:(MGLStyleValue<NSNumber *> *)lineWidth {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineWidth);
|
||||
self.layer->setLineWidth(mbglValue);
|
||||
self.rawLayer->setLineWidth(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineWidth {
|
||||
auto propertyValue = self.layer->getLineWidth() ?: self.layer->getDefaultLineWidth();
|
||||
auto propertyValue = self.rawLayer->getLineWidth() ?: self.rawLayer->getDefaultLineWidth();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineGapWidth:(MGLStyleValue<NSNumber *> *)lineGapWidth {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineGapWidth);
|
||||
self.layer->setLineGapWidth(mbglValue);
|
||||
self.rawLayer->setLineGapWidth(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineGapWidth {
|
||||
auto propertyValue = self.layer->getLineGapWidth() ?: self.layer->getDefaultLineGapWidth();
|
||||
auto propertyValue = self.rawLayer->getLineGapWidth() ?: self.rawLayer->getDefaultLineGapWidth();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineOffset:(MGLStyleValue<NSNumber *> *)lineOffset {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineOffset);
|
||||
self.layer->setLineOffset(mbglValue);
|
||||
self.rawLayer->setLineOffset(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineOffset {
|
||||
auto propertyValue = self.layer->getLineOffset() ?: self.layer->getDefaultLineOffset();
|
||||
auto propertyValue = self.rawLayer->getLineOffset() ?: self.rawLayer->getDefaultLineOffset();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineBlur:(MGLStyleValue<NSNumber *> *)lineBlur {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineBlur);
|
||||
self.layer->setLineBlur(mbglValue);
|
||||
self.rawLayer->setLineBlur(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)lineBlur {
|
||||
auto propertyValue = self.layer->getLineBlur() ?: self.layer->getDefaultLineBlur();
|
||||
auto propertyValue = self.rawLayer->getLineBlur() ?: self.rawLayer->getDefaultLineBlur();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLineDasharray:(MGLStyleValue<NSArray<NSNumber *> *> *)lineDasharray {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::vector<float>, NSArray<NSNumber *> *, float>().toPropertyValue(lineDasharray);
|
||||
self.layer->setLineDasharray(mbglValue);
|
||||
self.rawLayer->setLineDasharray(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSArray<NSNumber *> *> *)lineDasharray {
|
||||
auto propertyValue = self.layer->getLineDasharray() ?: self.layer->getDefaultLineDasharray();
|
||||
auto propertyValue = self.rawLayer->getLineDasharray() ?: self.rawLayer->getDefaultLineDasharray();
|
||||
return MGLStyleValueTransformer<std::vector<float>, NSArray<NSNumber *> *, float>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setLinePattern:(MGLStyleValue<NSString *> *)linePattern {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::string, NSString *>().toPropertyValue(linePattern);
|
||||
self.layer->setLinePattern(mbglValue);
|
||||
self.rawLayer->setLinePattern(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSString *> *)linePattern {
|
||||
auto propertyValue = self.layer->getLinePattern() ?: self.layer->getDefaultLinePattern();
|
||||
auto propertyValue = self.rawLayer->getLinePattern() ?: self.rawLayer->getDefaultLinePattern();
|
||||
return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,90 +12,114 @@
|
||||
|
||||
@interface MGLRasterStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::RasterLayer *layer;
|
||||
@property (nonatomic) mbgl::style::RasterLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLRasterStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::RasterLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::RasterLayer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::RasterLayer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Accessing the Paint Attributes
|
||||
|
||||
- (void)setRasterOpacity:(MGLStyleValue<NSNumber *> *)rasterOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterOpacity);
|
||||
self.layer->setRasterOpacity(mbglValue);
|
||||
self.rawLayer->setRasterOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterOpacity {
|
||||
auto propertyValue = self.layer->getRasterOpacity() ?: self.layer->getDefaultRasterOpacity();
|
||||
auto propertyValue = self.rawLayer->getRasterOpacity() ?: self.rawLayer->getDefaultRasterOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterHueRotate:(MGLStyleValue<NSNumber *> *)rasterHueRotate {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterHueRotate);
|
||||
self.layer->setRasterHueRotate(mbglValue);
|
||||
self.rawLayer->setRasterHueRotate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterHueRotate {
|
||||
auto propertyValue = self.layer->getRasterHueRotate() ?: self.layer->getDefaultRasterHueRotate();
|
||||
auto propertyValue = self.rawLayer->getRasterHueRotate() ?: self.rawLayer->getDefaultRasterHueRotate();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterBrightnessMin:(MGLStyleValue<NSNumber *> *)rasterBrightnessMin {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterBrightnessMin);
|
||||
self.layer->setRasterBrightnessMin(mbglValue);
|
||||
self.rawLayer->setRasterBrightnessMin(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterBrightnessMin {
|
||||
auto propertyValue = self.layer->getRasterBrightnessMin() ?: self.layer->getDefaultRasterBrightnessMin();
|
||||
auto propertyValue = self.rawLayer->getRasterBrightnessMin() ?: self.rawLayer->getDefaultRasterBrightnessMin();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterBrightnessMax:(MGLStyleValue<NSNumber *> *)rasterBrightnessMax {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterBrightnessMax);
|
||||
self.layer->setRasterBrightnessMax(mbglValue);
|
||||
self.rawLayer->setRasterBrightnessMax(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterBrightnessMax {
|
||||
auto propertyValue = self.layer->getRasterBrightnessMax() ?: self.layer->getDefaultRasterBrightnessMax();
|
||||
auto propertyValue = self.rawLayer->getRasterBrightnessMax() ?: self.rawLayer->getDefaultRasterBrightnessMax();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterSaturation:(MGLStyleValue<NSNumber *> *)rasterSaturation {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterSaturation);
|
||||
self.layer->setRasterSaturation(mbglValue);
|
||||
self.rawLayer->setRasterSaturation(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterSaturation {
|
||||
auto propertyValue = self.layer->getRasterSaturation() ?: self.layer->getDefaultRasterSaturation();
|
||||
auto propertyValue = self.rawLayer->getRasterSaturation() ?: self.rawLayer->getDefaultRasterSaturation();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterContrast:(MGLStyleValue<NSNumber *> *)rasterContrast {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterContrast);
|
||||
self.layer->setRasterContrast(mbglValue);
|
||||
self.rawLayer->setRasterContrast(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterContrast {
|
||||
auto propertyValue = self.layer->getRasterContrast() ?: self.layer->getDefaultRasterContrast();
|
||||
auto propertyValue = self.rawLayer->getRasterContrast() ?: self.rawLayer->getDefaultRasterContrast();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setRasterFadeDuration:(MGLStyleValue<NSNumber *> *)rasterFadeDuration {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(rasterFadeDuration);
|
||||
self.layer->setRasterFadeDuration(mbglValue);
|
||||
self.rawLayer->setRasterFadeDuration(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)rasterFadeDuration {
|
||||
auto propertyValue = self.layer->getRasterFadeDuration() ?: self.layer->getDefaultRasterFadeDuration();
|
||||
auto propertyValue = self.rawLayer->getRasterFadeDuration() ?: self.rawLayer->getDefaultRasterFadeDuration();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -134,7 +134,7 @@ static NSURL *MGLStyleURL_emerald;
|
||||
return nil;
|
||||
}
|
||||
|
||||
styleLayer.layer = mbglLayer;
|
||||
styleLayer.rawLayer = mbglLayer;
|
||||
|
||||
return styleLayer;
|
||||
}
|
||||
@@ -173,26 +173,25 @@ static NSURL *MGLStyleURL_emerald;
|
||||
|
||||
- (void)addLayer:(MGLStyleLayer *)layer
|
||||
{
|
||||
if (!layer.layer) {
|
||||
if (!layer.rawLayer) {
|
||||
[NSException raise:NSInvalidArgumentException format:
|
||||
@"The style layer %@ cannot be added to the style. "
|
||||
@"Make sure the style layer was created as a member of a concrete subclass of MGLStyleLayer.",
|
||||
layer];
|
||||
}
|
||||
|
||||
self.mapView.mbglMap->addLayer(std::unique_ptr<mbgl::style::Layer>(layer.layer));
|
||||
[layer addToMapView:self.mapView];
|
||||
}
|
||||
|
||||
- (void)insertLayer:(MGLStyleLayer *)layer belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (!layer.layer) {
|
||||
if (!layer.rawLayer) {
|
||||
[NSException raise:NSInvalidArgumentException
|
||||
format:
|
||||
@"The style layer %@ cannot be added to the style. "
|
||||
@"Make sure the style layer was created as a member of a concrete subclass of MGLStyleLayer.",
|
||||
layer];
|
||||
}
|
||||
if (!otherLayer.layer) {
|
||||
if (!otherLayer.rawLayer) {
|
||||
[NSException raise:NSInvalidArgumentException
|
||||
format:
|
||||
@"A style layer cannot be placed before %@ in the style. "
|
||||
@@ -200,8 +199,7 @@ static NSURL *MGLStyleURL_emerald;
|
||||
otherLayer];
|
||||
}
|
||||
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
self.mapView.mbglMap->addLayer(std::unique_ptr<mbgl::style::Layer>(layer.layer), belowLayerId);
|
||||
[layer addToMapView:self.mapView belowLayer:otherLayer];
|
||||
}
|
||||
|
||||
- (void)addSource:(MGLSource *)source
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -16,50 +17,59 @@
|
||||
|
||||
@interface MGL<%- camelize(type) %>StyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::<%- camelize(type) %>Layer *layer;
|
||||
@property (nonatomic) mbgl::style::<%- camelize(type) %>Layer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGL<%- camelize(type) %>StyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer> _pendingLayer;
|
||||
}
|
||||
|
||||
<% if (type == 'background') { -%>
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier]) {
|
||||
_layer = new mbgl::style::<%- camelize(type) %>Layer(identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
<% } else { -%>
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::<%- camelize(type) %>Layer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
|
||||
<% if (type !== 'background' && type !== 'raster') { -%>
|
||||
- (NSString *)sourceLayerIdentifier
|
||||
{
|
||||
auto layerID = self.layer->getSourceLayer();
|
||||
auto layerID = self.rawLayer->getSourceLayer();
|
||||
return layerID.empty() ? nil : @(layerID.c_str());
|
||||
}
|
||||
|
||||
- (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier
|
||||
{
|
||||
self.layer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
}
|
||||
|
||||
- (void)setPredicate:(NSPredicate *)predicate
|
||||
{
|
||||
self.layer->setFilter(predicate.mgl_filter);
|
||||
self.rawLayer->setFilter(predicate.mgl_filter);
|
||||
}
|
||||
|
||||
- (NSPredicate *)predicate
|
||||
{
|
||||
return [NSPredicate mgl_predicateWithFilter:self.layer->getFilter()];
|
||||
return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()];
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
@@ -69,11 +79,11 @@
|
||||
<% for (const property of layoutProperties) { -%>
|
||||
- (void)set<%- camelize(property.name) %>:(MGLStyleValue<<%- propertyType(property, true) %>> *)<%- objCName(property) %> {
|
||||
auto mbglValue = MGLStyleValueTransformer<<%- valueTransformerArguments(property).join(', ') %>>().toPropertyValue(<%- objCName(property) %>);
|
||||
self.layer->set<%- camelize(property.name) %>(mbglValue);
|
||||
self.rawLayer->set<%- camelize(property.name) %>(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<<%- propertyType(property, true) %>> *)<%- objCName(property) %> {
|
||||
auto propertyValue = self.layer->get<%- camelize(property.name) %>() ?: self.layer->getDefault<%- camelize(property.name) %>();
|
||||
auto propertyValue = self.rawLayer->get<%- camelize(property.name) %>() ?: self.rawLayer->getDefault<%- camelize(property.name) %>();
|
||||
return MGLStyleValueTransformer<<%- valueTransformerArguments(property).join(', ') %>>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
@@ -85,14 +95,32 @@
|
||||
<% for (const property of paintProperties) { -%>
|
||||
- (void)set<%- camelize(property.name) %>:(MGLStyleValue<<%- propertyType(property, true) %>> *)<%- objCName(property) %> {
|
||||
auto mbglValue = MGLStyleValueTransformer<<%- valueTransformerArguments(property).join(', ') %>>().toPropertyValue(<%- objCName(property) %>);
|
||||
self.layer->set<%- camelize(property.name) %>(mbglValue);
|
||||
self.rawLayer->set<%- camelize(property.name) %>(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<<%- propertyType(property, true) %>> *)<%- objCName(property) %> {
|
||||
auto propertyValue = self.layer->get<%- camelize(property.name) %>() ?: self.layer->getDefault<%- camelize(property.name) %>();
|
||||
auto propertyValue = self.rawLayer->get<%- camelize(property.name) %>() ?: self.rawLayer->getDefault<%- camelize(property.name) %>();
|
||||
return MGLStyleValueTransformer<<%- valueTransformerArguments(property).join(', ') %>>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
<% } -%>
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -5,9 +5,39 @@
|
||||
|
||||
#include <mbgl/style/layer.hpp>
|
||||
|
||||
@class MGLMapView;
|
||||
|
||||
@interface MGLStyleLayer (Private)
|
||||
|
||||
@property (nonatomic, readwrite, copy) NSString *identifier;
|
||||
@property (nonatomic) mbgl::style::Layer *layer;
|
||||
|
||||
/**
|
||||
A raw pointer to the mbgl object, which is always initialized, either to the
|
||||
value returned by `mbgl::Map getLayer`, or for independently created objects,
|
||||
to the pointer value held in `pendingLayer`. In the latter case, this raw
|
||||
pointer value stays even after ownership of the object is transferred via
|
||||
`mbgl::Map addLayer`.
|
||||
*/
|
||||
@property (nonatomic) mbgl::style::Layer *rawLayer;
|
||||
|
||||
/**
|
||||
Adds the mbgl style layer that this object represents to the mbgl map.
|
||||
|
||||
Once a mbgl style layer is added, ownership of the object is transferred to the
|
||||
`mbgl::Map` and this object no longer has an active unique_ptr reference to the
|
||||
`mbgl::style::Layer`.
|
||||
*/
|
||||
- (void)addToMapView:(MGLMapView *)mapView;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Adds the mbgl style layer that this object represents to the mbgl map below the specified `otherLayer`.
|
||||
|
||||
Once a mbgl style layer is added, ownership of the object is transferred to the
|
||||
`mbgl::Map` and this object no longer has an active unique_ptr reference to the
|
||||
`mbgl::style::Layer`.
|
||||
*/
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer;
|
||||
|
||||
@end
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
|
||||
|
||||
#import "MGLSource.h"
|
||||
#import "MGLMapView_Private.h"
|
||||
#import "NSPredicate+MGLAdditions.h"
|
||||
#import "MGLStyleLayer_Private.h"
|
||||
#import "MGLStyleValue_Private.h"
|
||||
@@ -11,380 +12,386 @@
|
||||
|
||||
@interface MGLSymbolStyleLayer ()
|
||||
|
||||
@property (nonatomic) mbgl::style::SymbolLayer *layer;
|
||||
@property (nonatomic) mbgl::style::SymbolLayer *rawLayer;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MGLSymbolStyleLayer
|
||||
{
|
||||
std::unique_ptr<mbgl::style::SymbolLayer> _pendingLayer;
|
||||
}
|
||||
|
||||
- (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source
|
||||
{
|
||||
if (self = [super initWithIdentifier:identifier source:source]) {
|
||||
_layer = new mbgl::style::SymbolLayer(identifier.UTF8String, source.identifier.UTF8String);
|
||||
auto layer = std::make_unique<mbgl::style::SymbolLayer>(identifier.UTF8String, source.identifier.UTF8String);
|
||||
_pendingLayer = std::move(layer);
|
||||
self.rawLayer = _pendingLayer.get();
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)sourceLayerIdentifier
|
||||
{
|
||||
auto layerID = self.layer->getSourceLayer();
|
||||
auto layerID = self.rawLayer->getSourceLayer();
|
||||
return layerID.empty() ? nil : @(layerID.c_str());
|
||||
}
|
||||
|
||||
- (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier
|
||||
{
|
||||
self.layer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: "");
|
||||
}
|
||||
|
||||
- (void)setPredicate:(NSPredicate *)predicate
|
||||
{
|
||||
self.layer->setFilter(predicate.mgl_filter);
|
||||
self.rawLayer->setFilter(predicate.mgl_filter);
|
||||
}
|
||||
|
||||
- (NSPredicate *)predicate
|
||||
{
|
||||
return [NSPredicate mgl_predicateWithFilter:self.layer->getFilter()];
|
||||
return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()];
|
||||
}
|
||||
|
||||
#pragma mark - Accessing the Layout Attributes
|
||||
|
||||
- (void)setSymbolPlacement:(MGLStyleValue<NSValue *> *)symbolPlacement {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::SymbolPlacementType, NSValue *>().toPropertyValue(symbolPlacement);
|
||||
self.layer->setSymbolPlacement(mbglValue);
|
||||
self.rawLayer->setSymbolPlacement(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)symbolPlacement {
|
||||
auto propertyValue = self.layer->getSymbolPlacement() ?: self.layer->getDefaultSymbolPlacement();
|
||||
auto propertyValue = self.rawLayer->getSymbolPlacement() ?: self.rawLayer->getDefaultSymbolPlacement();
|
||||
return MGLStyleValueTransformer<mbgl::style::SymbolPlacementType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setSymbolSpacing:(MGLStyleValue<NSNumber *> *)symbolSpacing {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(symbolSpacing);
|
||||
self.layer->setSymbolSpacing(mbglValue);
|
||||
self.rawLayer->setSymbolSpacing(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)symbolSpacing {
|
||||
auto propertyValue = self.layer->getSymbolSpacing() ?: self.layer->getDefaultSymbolSpacing();
|
||||
auto propertyValue = self.rawLayer->getSymbolSpacing() ?: self.rawLayer->getDefaultSymbolSpacing();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setSymbolAvoidEdges:(MGLStyleValue<NSNumber *> *)symbolAvoidEdges {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(symbolAvoidEdges);
|
||||
self.layer->setSymbolAvoidEdges(mbglValue);
|
||||
self.rawLayer->setSymbolAvoidEdges(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)symbolAvoidEdges {
|
||||
auto propertyValue = self.layer->getSymbolAvoidEdges() ?: self.layer->getDefaultSymbolAvoidEdges();
|
||||
auto propertyValue = self.rawLayer->getSymbolAvoidEdges() ?: self.rawLayer->getDefaultSymbolAvoidEdges();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconAllowOverlap:(MGLStyleValue<NSNumber *> *)iconAllowOverlap {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(iconAllowOverlap);
|
||||
self.layer->setIconAllowOverlap(mbglValue);
|
||||
self.rawLayer->setIconAllowOverlap(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconAllowOverlap {
|
||||
auto propertyValue = self.layer->getIconAllowOverlap() ?: self.layer->getDefaultIconAllowOverlap();
|
||||
auto propertyValue = self.rawLayer->getIconAllowOverlap() ?: self.rawLayer->getDefaultIconAllowOverlap();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconIgnorePlacement:(MGLStyleValue<NSNumber *> *)iconIgnorePlacement {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(iconIgnorePlacement);
|
||||
self.layer->setIconIgnorePlacement(mbglValue);
|
||||
self.rawLayer->setIconIgnorePlacement(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconIgnorePlacement {
|
||||
auto propertyValue = self.layer->getIconIgnorePlacement() ?: self.layer->getDefaultIconIgnorePlacement();
|
||||
auto propertyValue = self.rawLayer->getIconIgnorePlacement() ?: self.rawLayer->getDefaultIconIgnorePlacement();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconOptional:(MGLStyleValue<NSNumber *> *)iconOptional {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(iconOptional);
|
||||
self.layer->setIconOptional(mbglValue);
|
||||
self.rawLayer->setIconOptional(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconOptional {
|
||||
auto propertyValue = self.layer->getIconOptional() ?: self.layer->getDefaultIconOptional();
|
||||
auto propertyValue = self.rawLayer->getIconOptional() ?: self.rawLayer->getDefaultIconOptional();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconRotationAlignment:(MGLStyleValue<NSValue *> *)iconRotationAlignment {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toPropertyValue(iconRotationAlignment);
|
||||
self.layer->setIconRotationAlignment(mbglValue);
|
||||
self.rawLayer->setIconRotationAlignment(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconRotationAlignment {
|
||||
auto propertyValue = self.layer->getIconRotationAlignment() ?: self.layer->getDefaultIconRotationAlignment();
|
||||
auto propertyValue = self.rawLayer->getIconRotationAlignment() ?: self.rawLayer->getDefaultIconRotationAlignment();
|
||||
return MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconSize:(MGLStyleValue<NSNumber *> *)iconSize {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconSize);
|
||||
self.layer->setIconSize(mbglValue);
|
||||
self.rawLayer->setIconSize(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconSize {
|
||||
auto propertyValue = self.layer->getIconSize() ?: self.layer->getDefaultIconSize();
|
||||
auto propertyValue = self.rawLayer->getIconSize() ?: self.rawLayer->getDefaultIconSize();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconTextFit:(MGLStyleValue<NSValue *> *)iconTextFit {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::IconTextFitType, NSValue *>().toPropertyValue(iconTextFit);
|
||||
self.layer->setIconTextFit(mbglValue);
|
||||
self.rawLayer->setIconTextFit(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconTextFit {
|
||||
auto propertyValue = self.layer->getIconTextFit() ?: self.layer->getDefaultIconTextFit();
|
||||
auto propertyValue = self.rawLayer->getIconTextFit() ?: self.rawLayer->getDefaultIconTextFit();
|
||||
return MGLStyleValueTransformer<mbgl::style::IconTextFitType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconTextFitPadding:(MGLStyleValue<NSValue *> *)iconTextFitPadding {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 4>, NSValue *>().toPropertyValue(iconTextFitPadding);
|
||||
self.layer->setIconTextFitPadding(mbglValue);
|
||||
self.rawLayer->setIconTextFitPadding(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconTextFitPadding {
|
||||
auto propertyValue = self.layer->getIconTextFitPadding() ?: self.layer->getDefaultIconTextFitPadding();
|
||||
auto propertyValue = self.rawLayer->getIconTextFitPadding() ?: self.rawLayer->getDefaultIconTextFitPadding();
|
||||
return MGLStyleValueTransformer<std::array<float, 4>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconImage:(MGLStyleValue<NSString *> *)iconImage {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::string, NSString *>().toPropertyValue(iconImage);
|
||||
self.layer->setIconImage(mbglValue);
|
||||
self.rawLayer->setIconImage(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSString *> *)iconImage {
|
||||
auto propertyValue = self.layer->getIconImage() ?: self.layer->getDefaultIconImage();
|
||||
auto propertyValue = self.rawLayer->getIconImage() ?: self.rawLayer->getDefaultIconImage();
|
||||
return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconRotate:(MGLStyleValue<NSNumber *> *)iconRotate {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconRotate);
|
||||
self.layer->setIconRotate(mbglValue);
|
||||
self.rawLayer->setIconRotate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconRotate {
|
||||
auto propertyValue = self.layer->getIconRotate() ?: self.layer->getDefaultIconRotate();
|
||||
auto propertyValue = self.rawLayer->getIconRotate() ?: self.rawLayer->getDefaultIconRotate();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconPadding:(MGLStyleValue<NSNumber *> *)iconPadding {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconPadding);
|
||||
self.layer->setIconPadding(mbglValue);
|
||||
self.rawLayer->setIconPadding(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconPadding {
|
||||
auto propertyValue = self.layer->getIconPadding() ?: self.layer->getDefaultIconPadding();
|
||||
auto propertyValue = self.rawLayer->getIconPadding() ?: self.rawLayer->getDefaultIconPadding();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconKeepUpright:(MGLStyleValue<NSNumber *> *)iconKeepUpright {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(iconKeepUpright);
|
||||
self.layer->setIconKeepUpright(mbglValue);
|
||||
self.rawLayer->setIconKeepUpright(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconKeepUpright {
|
||||
auto propertyValue = self.layer->getIconKeepUpright() ?: self.layer->getDefaultIconKeepUpright();
|
||||
auto propertyValue = self.rawLayer->getIconKeepUpright() ?: self.rawLayer->getDefaultIconKeepUpright();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconOffset:(MGLStyleValue<NSValue *> *)iconOffset {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(iconOffset);
|
||||
self.layer->setIconOffset(mbglValue);
|
||||
self.rawLayer->setIconOffset(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconOffset {
|
||||
auto propertyValue = self.layer->getIconOffset() ?: self.layer->getDefaultIconOffset();
|
||||
auto propertyValue = self.rawLayer->getIconOffset() ?: self.rawLayer->getDefaultIconOffset();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextPitchAlignment:(MGLStyleValue<NSValue *> *)textPitchAlignment {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toPropertyValue(textPitchAlignment);
|
||||
self.layer->setTextPitchAlignment(mbglValue);
|
||||
self.rawLayer->setTextPitchAlignment(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textPitchAlignment {
|
||||
auto propertyValue = self.layer->getTextPitchAlignment() ?: self.layer->getDefaultTextPitchAlignment();
|
||||
auto propertyValue = self.rawLayer->getTextPitchAlignment() ?: self.rawLayer->getDefaultTextPitchAlignment();
|
||||
return MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextRotationAlignment:(MGLStyleValue<NSValue *> *)textRotationAlignment {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toPropertyValue(textRotationAlignment);
|
||||
self.layer->setTextRotationAlignment(mbglValue);
|
||||
self.rawLayer->setTextRotationAlignment(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textRotationAlignment {
|
||||
auto propertyValue = self.layer->getTextRotationAlignment() ?: self.layer->getDefaultTextRotationAlignment();
|
||||
auto propertyValue = self.rawLayer->getTextRotationAlignment() ?: self.rawLayer->getDefaultTextRotationAlignment();
|
||||
return MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextField:(MGLStyleValue<NSString *> *)textField {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::string, NSString *>().toPropertyValue(textField);
|
||||
self.layer->setTextField(mbglValue);
|
||||
self.rawLayer->setTextField(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSString *> *)textField {
|
||||
auto propertyValue = self.layer->getTextField() ?: self.layer->getDefaultTextField();
|
||||
auto propertyValue = self.rawLayer->getTextField() ?: self.rawLayer->getDefaultTextField();
|
||||
return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextFont:(MGLStyleValue<NSArray<NSString *> *> *)textFont {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::vector<std::string>, NSArray<NSString *> *, std::string>().toPropertyValue(textFont);
|
||||
self.layer->setTextFont(mbglValue);
|
||||
self.rawLayer->setTextFont(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSArray<NSString *> *> *)textFont {
|
||||
auto propertyValue = self.layer->getTextFont() ?: self.layer->getDefaultTextFont();
|
||||
auto propertyValue = self.rawLayer->getTextFont() ?: self.rawLayer->getDefaultTextFont();
|
||||
return MGLStyleValueTransformer<std::vector<std::string>, NSArray<NSString *> *, std::string>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextSize:(MGLStyleValue<NSNumber *> *)textSize {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textSize);
|
||||
self.layer->setTextSize(mbglValue);
|
||||
self.rawLayer->setTextSize(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textSize {
|
||||
auto propertyValue = self.layer->getTextSize() ?: self.layer->getDefaultTextSize();
|
||||
auto propertyValue = self.rawLayer->getTextSize() ?: self.rawLayer->getDefaultTextSize();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextMaxWidth:(MGLStyleValue<NSNumber *> *)textMaxWidth {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textMaxWidth);
|
||||
self.layer->setTextMaxWidth(mbglValue);
|
||||
self.rawLayer->setTextMaxWidth(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textMaxWidth {
|
||||
auto propertyValue = self.layer->getTextMaxWidth() ?: self.layer->getDefaultTextMaxWidth();
|
||||
auto propertyValue = self.rawLayer->getTextMaxWidth() ?: self.rawLayer->getDefaultTextMaxWidth();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextLineHeight:(MGLStyleValue<NSNumber *> *)textLineHeight {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textLineHeight);
|
||||
self.layer->setTextLineHeight(mbglValue);
|
||||
self.rawLayer->setTextLineHeight(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textLineHeight {
|
||||
auto propertyValue = self.layer->getTextLineHeight() ?: self.layer->getDefaultTextLineHeight();
|
||||
auto propertyValue = self.rawLayer->getTextLineHeight() ?: self.rawLayer->getDefaultTextLineHeight();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextLetterSpacing:(MGLStyleValue<NSNumber *> *)textLetterSpacing {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textLetterSpacing);
|
||||
self.layer->setTextLetterSpacing(mbglValue);
|
||||
self.rawLayer->setTextLetterSpacing(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textLetterSpacing {
|
||||
auto propertyValue = self.layer->getTextLetterSpacing() ?: self.layer->getDefaultTextLetterSpacing();
|
||||
auto propertyValue = self.rawLayer->getTextLetterSpacing() ?: self.rawLayer->getDefaultTextLetterSpacing();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextJustify:(MGLStyleValue<NSValue *> *)textJustify {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TextJustifyType, NSValue *>().toPropertyValue(textJustify);
|
||||
self.layer->setTextJustify(mbglValue);
|
||||
self.rawLayer->setTextJustify(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textJustify {
|
||||
auto propertyValue = self.layer->getTextJustify() ?: self.layer->getDefaultTextJustify();
|
||||
auto propertyValue = self.rawLayer->getTextJustify() ?: self.rawLayer->getDefaultTextJustify();
|
||||
return MGLStyleValueTransformer<mbgl::style::TextJustifyType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextAnchor:(MGLStyleValue<NSValue *> *)textAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TextAnchorType, NSValue *>().toPropertyValue(textAnchor);
|
||||
self.layer->setTextAnchor(mbglValue);
|
||||
self.rawLayer->setTextAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textAnchor {
|
||||
auto propertyValue = self.layer->getTextAnchor() ?: self.layer->getDefaultTextAnchor();
|
||||
auto propertyValue = self.rawLayer->getTextAnchor() ?: self.rawLayer->getDefaultTextAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TextAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextMaxAngle:(MGLStyleValue<NSNumber *> *)textMaxAngle {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textMaxAngle);
|
||||
self.layer->setTextMaxAngle(mbglValue);
|
||||
self.rawLayer->setTextMaxAngle(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textMaxAngle {
|
||||
auto propertyValue = self.layer->getTextMaxAngle() ?: self.layer->getDefaultTextMaxAngle();
|
||||
auto propertyValue = self.rawLayer->getTextMaxAngle() ?: self.rawLayer->getDefaultTextMaxAngle();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextRotate:(MGLStyleValue<NSNumber *> *)textRotate {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textRotate);
|
||||
self.layer->setTextRotate(mbglValue);
|
||||
self.rawLayer->setTextRotate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textRotate {
|
||||
auto propertyValue = self.layer->getTextRotate() ?: self.layer->getDefaultTextRotate();
|
||||
auto propertyValue = self.rawLayer->getTextRotate() ?: self.rawLayer->getDefaultTextRotate();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextPadding:(MGLStyleValue<NSNumber *> *)textPadding {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textPadding);
|
||||
self.layer->setTextPadding(mbglValue);
|
||||
self.rawLayer->setTextPadding(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textPadding {
|
||||
auto propertyValue = self.layer->getTextPadding() ?: self.layer->getDefaultTextPadding();
|
||||
auto propertyValue = self.rawLayer->getTextPadding() ?: self.rawLayer->getDefaultTextPadding();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextKeepUpright:(MGLStyleValue<NSNumber *> *)textKeepUpright {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(textKeepUpright);
|
||||
self.layer->setTextKeepUpright(mbglValue);
|
||||
self.rawLayer->setTextKeepUpright(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textKeepUpright {
|
||||
auto propertyValue = self.layer->getTextKeepUpright() ?: self.layer->getDefaultTextKeepUpright();
|
||||
auto propertyValue = self.rawLayer->getTextKeepUpright() ?: self.rawLayer->getDefaultTextKeepUpright();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextTransform:(MGLStyleValue<NSValue *> *)textTransform {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TextTransformType, NSValue *>().toPropertyValue(textTransform);
|
||||
self.layer->setTextTransform(mbglValue);
|
||||
self.rawLayer->setTextTransform(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textTransform {
|
||||
auto propertyValue = self.layer->getTextTransform() ?: self.layer->getDefaultTextTransform();
|
||||
auto propertyValue = self.rawLayer->getTextTransform() ?: self.rawLayer->getDefaultTextTransform();
|
||||
return MGLStyleValueTransformer<mbgl::style::TextTransformType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextOffset:(MGLStyleValue<NSValue *> *)textOffset {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(textOffset);
|
||||
self.layer->setTextOffset(mbglValue);
|
||||
self.rawLayer->setTextOffset(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textOffset {
|
||||
auto propertyValue = self.layer->getTextOffset() ?: self.layer->getDefaultTextOffset();
|
||||
auto propertyValue = self.rawLayer->getTextOffset() ?: self.rawLayer->getDefaultTextOffset();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextAllowOverlap:(MGLStyleValue<NSNumber *> *)textAllowOverlap {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(textAllowOverlap);
|
||||
self.layer->setTextAllowOverlap(mbglValue);
|
||||
self.rawLayer->setTextAllowOverlap(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textAllowOverlap {
|
||||
auto propertyValue = self.layer->getTextAllowOverlap() ?: self.layer->getDefaultTextAllowOverlap();
|
||||
auto propertyValue = self.rawLayer->getTextAllowOverlap() ?: self.rawLayer->getDefaultTextAllowOverlap();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextIgnorePlacement:(MGLStyleValue<NSNumber *> *)textIgnorePlacement {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(textIgnorePlacement);
|
||||
self.layer->setTextIgnorePlacement(mbglValue);
|
||||
self.rawLayer->setTextIgnorePlacement(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textIgnorePlacement {
|
||||
auto propertyValue = self.layer->getTextIgnorePlacement() ?: self.layer->getDefaultTextIgnorePlacement();
|
||||
auto propertyValue = self.rawLayer->getTextIgnorePlacement() ?: self.rawLayer->getDefaultTextIgnorePlacement();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextOptional:(MGLStyleValue<NSNumber *> *)textOptional {
|
||||
auto mbglValue = MGLStyleValueTransformer<bool, NSNumber *>().toPropertyValue(textOptional);
|
||||
self.layer->setTextOptional(mbglValue);
|
||||
self.rawLayer->setTextOptional(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textOptional {
|
||||
auto propertyValue = self.layer->getTextOptional() ?: self.layer->getDefaultTextOptional();
|
||||
auto propertyValue = self.rawLayer->getTextOptional() ?: self.rawLayer->getDefaultTextOptional();
|
||||
return MGLStyleValueTransformer<bool, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
@@ -392,142 +399,160 @@
|
||||
|
||||
- (void)setIconOpacity:(MGLStyleValue<NSNumber *> *)iconOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconOpacity);
|
||||
self.layer->setIconOpacity(mbglValue);
|
||||
self.rawLayer->setIconOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconOpacity {
|
||||
auto propertyValue = self.layer->getIconOpacity() ?: self.layer->getDefaultIconOpacity();
|
||||
auto propertyValue = self.rawLayer->getIconOpacity() ?: self.rawLayer->getDefaultIconOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconColor:(MGLStyleValue<MGLColor *> *)iconColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(iconColor);
|
||||
self.layer->setIconColor(mbglValue);
|
||||
self.rawLayer->setIconColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)iconColor {
|
||||
auto propertyValue = self.layer->getIconColor() ?: self.layer->getDefaultIconColor();
|
||||
auto propertyValue = self.rawLayer->getIconColor() ?: self.rawLayer->getDefaultIconColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconHaloColor:(MGLStyleValue<MGLColor *> *)iconHaloColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(iconHaloColor);
|
||||
self.layer->setIconHaloColor(mbglValue);
|
||||
self.rawLayer->setIconHaloColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)iconHaloColor {
|
||||
auto propertyValue = self.layer->getIconHaloColor() ?: self.layer->getDefaultIconHaloColor();
|
||||
auto propertyValue = self.rawLayer->getIconHaloColor() ?: self.rawLayer->getDefaultIconHaloColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconHaloWidth:(MGLStyleValue<NSNumber *> *)iconHaloWidth {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconHaloWidth);
|
||||
self.layer->setIconHaloWidth(mbglValue);
|
||||
self.rawLayer->setIconHaloWidth(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconHaloWidth {
|
||||
auto propertyValue = self.layer->getIconHaloWidth() ?: self.layer->getDefaultIconHaloWidth();
|
||||
auto propertyValue = self.rawLayer->getIconHaloWidth() ?: self.rawLayer->getDefaultIconHaloWidth();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconHaloBlur:(MGLStyleValue<NSNumber *> *)iconHaloBlur {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(iconHaloBlur);
|
||||
self.layer->setIconHaloBlur(mbglValue);
|
||||
self.rawLayer->setIconHaloBlur(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)iconHaloBlur {
|
||||
auto propertyValue = self.layer->getIconHaloBlur() ?: self.layer->getDefaultIconHaloBlur();
|
||||
auto propertyValue = self.rawLayer->getIconHaloBlur() ?: self.rawLayer->getDefaultIconHaloBlur();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconTranslate:(MGLStyleValue<NSValue *> *)iconTranslate {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(iconTranslate);
|
||||
self.layer->setIconTranslate(mbglValue);
|
||||
self.rawLayer->setIconTranslate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconTranslate {
|
||||
auto propertyValue = self.layer->getIconTranslate() ?: self.layer->getDefaultIconTranslate();
|
||||
auto propertyValue = self.rawLayer->getIconTranslate() ?: self.rawLayer->getDefaultIconTranslate();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setIconTranslateAnchor:(MGLStyleValue<NSValue *> *)iconTranslateAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toPropertyValue(iconTranslateAnchor);
|
||||
self.layer->setIconTranslateAnchor(mbglValue);
|
||||
self.rawLayer->setIconTranslateAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)iconTranslateAnchor {
|
||||
auto propertyValue = self.layer->getIconTranslateAnchor() ?: self.layer->getDefaultIconTranslateAnchor();
|
||||
auto propertyValue = self.rawLayer->getIconTranslateAnchor() ?: self.rawLayer->getDefaultIconTranslateAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextOpacity:(MGLStyleValue<NSNumber *> *)textOpacity {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textOpacity);
|
||||
self.layer->setTextOpacity(mbglValue);
|
||||
self.rawLayer->setTextOpacity(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textOpacity {
|
||||
auto propertyValue = self.layer->getTextOpacity() ?: self.layer->getDefaultTextOpacity();
|
||||
auto propertyValue = self.rawLayer->getTextOpacity() ?: self.rawLayer->getDefaultTextOpacity();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextColor:(MGLStyleValue<MGLColor *> *)textColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(textColor);
|
||||
self.layer->setTextColor(mbglValue);
|
||||
self.rawLayer->setTextColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)textColor {
|
||||
auto propertyValue = self.layer->getTextColor() ?: self.layer->getDefaultTextColor();
|
||||
auto propertyValue = self.rawLayer->getTextColor() ?: self.rawLayer->getDefaultTextColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextHaloColor:(MGLStyleValue<MGLColor *> *)textHaloColor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(textHaloColor);
|
||||
self.layer->setTextHaloColor(mbglValue);
|
||||
self.rawLayer->setTextHaloColor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<MGLColor *> *)textHaloColor {
|
||||
auto propertyValue = self.layer->getTextHaloColor() ?: self.layer->getDefaultTextHaloColor();
|
||||
auto propertyValue = self.rawLayer->getTextHaloColor() ?: self.rawLayer->getDefaultTextHaloColor();
|
||||
return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextHaloWidth:(MGLStyleValue<NSNumber *> *)textHaloWidth {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textHaloWidth);
|
||||
self.layer->setTextHaloWidth(mbglValue);
|
||||
self.rawLayer->setTextHaloWidth(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textHaloWidth {
|
||||
auto propertyValue = self.layer->getTextHaloWidth() ?: self.layer->getDefaultTextHaloWidth();
|
||||
auto propertyValue = self.rawLayer->getTextHaloWidth() ?: self.rawLayer->getDefaultTextHaloWidth();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextHaloBlur:(MGLStyleValue<NSNumber *> *)textHaloBlur {
|
||||
auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(textHaloBlur);
|
||||
self.layer->setTextHaloBlur(mbglValue);
|
||||
self.rawLayer->setTextHaloBlur(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSNumber *> *)textHaloBlur {
|
||||
auto propertyValue = self.layer->getTextHaloBlur() ?: self.layer->getDefaultTextHaloBlur();
|
||||
auto propertyValue = self.rawLayer->getTextHaloBlur() ?: self.rawLayer->getDefaultTextHaloBlur();
|
||||
return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextTranslate:(MGLStyleValue<NSValue *> *)textTranslate {
|
||||
auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(textTranslate);
|
||||
self.layer->setTextTranslate(mbglValue);
|
||||
self.rawLayer->setTextTranslate(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textTranslate {
|
||||
auto propertyValue = self.layer->getTextTranslate() ?: self.layer->getDefaultTextTranslate();
|
||||
auto propertyValue = self.rawLayer->getTextTranslate() ?: self.rawLayer->getDefaultTextTranslate();
|
||||
return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
- (void)setTextTranslateAnchor:(MGLStyleValue<NSValue *> *)textTranslateAnchor {
|
||||
auto mbglValue = MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toPropertyValue(textTranslateAnchor);
|
||||
self.layer->setTextTranslateAnchor(mbglValue);
|
||||
self.rawLayer->setTextTranslateAnchor(mbglValue);
|
||||
}
|
||||
|
||||
- (MGLStyleValue<NSValue *> *)textTranslateAnchor {
|
||||
auto propertyValue = self.layer->getTextTranslateAnchor() ?: self.layer->getDefaultTextTranslateAnchor();
|
||||
auto propertyValue = self.rawLayer->getTextTranslateAnchor() ?: self.rawLayer->getDefaultTextTranslateAnchor();
|
||||
return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *>().toStyleValue(propertyValue);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Add style layer to map
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView
|
||||
{
|
||||
[self addToMapView:mapView belowLayer:nil];
|
||||
}
|
||||
|
||||
- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer
|
||||
{
|
||||
if (otherLayer) {
|
||||
const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String};
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId);
|
||||
} else {
|
||||
mapView.mbglMap->addLayer(std::move(_pendingLayer));
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -769,6 +769,7 @@ typedef NS_ENUM(NSInteger, MBXSettingsMiscellaneousRows) {
|
||||
MGLFillStyleLayer *fillLayer = [[MGLFillStyleLayer alloc] initWithIdentifier:@"test" source:source];
|
||||
fillLayer.fillColor = [MGLStyleValue<UIColor *> valueWithRawValue:[UIColor purpleColor]];
|
||||
[self.mapView.style addLayer:fillLayer];
|
||||
|
||||
}
|
||||
|
||||
- (void)styleSymbolLayer
|
||||
|
||||
Reference in New Issue
Block a user