// This file is generated. // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLSource.h" #import "MGLMapView_Private.h" #import "NSPredicate+MGLAdditions.h" #import "NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #import "MGLStyleValue_Private.h" #import "MGLFillStyleLayer.h" #include #include namespace mbgl { MBGL_DEFINE_ENUM(MGLFillTranslationAnchor, { { MGLFillTranslationAnchorMap, "map" }, { MGLFillTranslationAnchorViewport, "viewport" }, }); } @interface MGLFillStyleLayer () @property (nonatomic) mbgl::style::FillLayer *rawLayer; @end @implementation MGLFillStyleLayer { std::unique_ptr _pendingLayer; } - (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source { if (self = [super initWithIdentifier:identifier source:source]) { auto layer = std::make_unique(identifier.UTF8String, source.identifier.UTF8String); _pendingLayer = std::move(layer); self.rawLayer = _pendingLayer.get(); } return self; } - (mbgl::style::FillLayer *)rawLayer { return (mbgl::style::FillLayer *)super.rawLayer; } - (void)setRawLayer:(mbgl::style::FillLayer *)rawLayer { super.rawLayer = rawLayer; } - (NSString *)sourceIdentifier { MGLAssertStyleLayerIsValid(); return @(self.rawLayer->getSourceID().c_str()); } - (NSString *)sourceLayerIdentifier { MGLAssertStyleLayerIsValid(); auto layerID = self.rawLayer->getSourceLayer(); return layerID.empty() ? nil : @(layerID.c_str()); } - (void)setSourceLayerIdentifier:(NSString *)sourceLayerIdentifier { MGLAssertStyleLayerIsValid(); self.rawLayer->setSourceLayer(sourceLayerIdentifier.UTF8String ?: ""); } - (void)setPredicate:(NSPredicate *)predicate { MGLAssertStyleLayerIsValid(); self.rawLayer->setFilter(predicate ? predicate.mgl_filter : mbgl::style::NullFilter()); } - (NSPredicate *)predicate { MGLAssertStyleLayerIsValid(); return [NSPredicate mgl_predicateWithFilter:self.rawLayer->getFilter()]; } #pragma mark - Adding to and removing from a map view - (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer { if (_pendingLayer == nullptr) { [NSException raise:@"MGLRedundantLayerException" format:@"This instance %@ was already added to %@. Adding the same layer instance " \ "to the style more than once is invalid.", self, mapView.style]; } if (otherLayer) { const mbgl::optional belowLayerId{otherLayer.identifier.UTF8String}; mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId); } else { mapView.mbglMap->addLayer(std::move(_pendingLayer)); } } - (void)removeFromMapView:(MGLMapView *)mapView { if (self.rawLayer != mapView.mbglMap->getLayer(self.identifier.UTF8String)) { return; } auto removedLayer = mapView.mbglMap->removeLayer(self.identifier.UTF8String); if (!removedLayer) { return; } mbgl::style::FillLayer *layer = dynamic_cast(removedLayer.get()); if (!layer) { return; } removedLayer.release(); _pendingLayer = std::unique_ptr(layer); self.rawLayer = _pendingLayer.get(); } #pragma mark - Accessing the Paint Attributes + (NSArray *)transitionKeys { NSMutableArray *transitionKeys = [NSMutableArray array]; [transitionKeys addObject:@"fillAntialiased"]; [transitionKeys addObject:@"fillAntialias"]; [transitionKeys addObject:@"fillColor"]; [transitionKeys addObject:@"fillOpacity"]; [transitionKeys addObject:@"fillOutlineColor"]; [transitionKeys addObject:@"fillPattern"]; [transitionKeys addObject:@"fillTranslation"]; [transitionKeys addObject:@"fillTranslate"]; [transitionKeys addObject:@"fillTranslationAnchor"]; [transitionKeys addObject:@"fillTranslateAnchor"]; return transitionKeys; } - (void)setFillAntialiased:(MGLStyleValue *)fillAntialiased { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toPropertyValue(fillAntialiased); self.rawLayer->setFillAntialias(mbglValue); } - (void)mbx_setFillAntialiasedTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillAntialiasTransition(options); } - (MGLStyleValue *)isFillAntialiased { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillAntialias(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toStyleValue(self.rawLayer->getDefaultFillAntialias()); } return MGLStyleValueTransformer().toStyleValue(propertyValue); } - (NSValue *)mbx_getFillAntialiasedTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillAntialiasTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillAntialias:(MGLStyleValue *)fillAntialias { } - (MGLStyleValue *)fillAntialias { return self.isFillAntialiased; } - (NSValue *)mbx_getFillAntialias { return [self mbx_getFillAntialiasedTransition]; } - (void)setFillColor:(MGLStyleValue *)fillColor { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toDataDrivenPropertyValue(fillColor); self.rawLayer->setFillColor(mbglValue); } - (void)mbx_setFillColorTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillColorTransition(options); } - (MGLStyleValue *)fillColor { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillColor(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toDataDrivenStyleValue(self.rawLayer->getDefaultFillColor()); } return MGLStyleValueTransformer().toDataDrivenStyleValue(propertyValue); } - (NSValue *)mbx_getFillColorTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillColorTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillOpacity:(MGLStyleValue *)fillOpacity { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toDataDrivenPropertyValue(fillOpacity); self.rawLayer->setFillOpacity(mbglValue); } - (void)mbx_setFillOpacityTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillOpacityTransition(options); } - (MGLStyleValue *)fillOpacity { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillOpacity(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toDataDrivenStyleValue(self.rawLayer->getDefaultFillOpacity()); } return MGLStyleValueTransformer().toDataDrivenStyleValue(propertyValue); } - (NSValue *)mbx_getFillOpacityTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillOpacityTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillOutlineColor:(MGLStyleValue *)fillOutlineColor { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toDataDrivenPropertyValue(fillOutlineColor); self.rawLayer->setFillOutlineColor(mbglValue); } - (void)mbx_setFillOutlineColorTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillOutlineColorTransition(options); } - (MGLStyleValue *)fillOutlineColor { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillOutlineColor(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toDataDrivenStyleValue(self.rawLayer->getDefaultFillOutlineColor()); } return MGLStyleValueTransformer().toDataDrivenStyleValue(propertyValue); } - (NSValue *)mbx_getFillOutlineColorTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillOutlineColorTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillPattern:(MGLStyleValue *)fillPattern { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toPropertyValue(fillPattern); self.rawLayer->setFillPattern(mbglValue); } - (void)mbx_setFillPatternTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillPatternTransition(options); } - (MGLStyleValue *)fillPattern { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillPattern(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toStyleValue(self.rawLayer->getDefaultFillPattern()); } return MGLStyleValueTransformer().toStyleValue(propertyValue); } - (NSValue *)mbx_getFillPatternTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillPatternTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillTranslation:(MGLStyleValue *)fillTranslation { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer, NSValue *>().toInterpolatablePropertyValue(fillTranslation); self.rawLayer->setFillTranslate(mbglValue); } - (void)mbx_setFillTranslationTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillTranslateTransition(options); } - (MGLStyleValue *)fillTranslation { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillTranslate(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer, NSValue *>().toStyleValue(self.rawLayer->getDefaultFillTranslate()); } return MGLStyleValueTransformer, NSValue *>().toStyleValue(propertyValue); } - (NSValue *)mbx_getFillTranslationTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillTranslateTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillTranslate:(MGLStyleValue *)fillTranslate { } - (MGLStyleValue *)fillTranslate { return self.fillTranslation; } - (NSValue *)mbx_getFillTranslate { return [self mbx_getFillTranslationTransition]; } - (void)setFillTranslationAnchor:(MGLStyleValue *)fillTranslationAnchor { MGLAssertStyleLayerIsValid(); auto mbglValue = MGLStyleValueTransformer().toEnumPropertyValue(fillTranslationAnchor); self.rawLayer->setFillTranslateAnchor(mbglValue); } - (void)mbx_setFillTranslationAnchorTransition:(NSValue *)transitionValue { MGLAssertStyleLayerIsValid(); MGLTransition transition; [transitionValue getValue:&transition]; mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; self.rawLayer->setFillTranslateAnchorTransition(options); } - (MGLStyleValue *)fillTranslationAnchor { MGLAssertStyleLayerIsValid(); auto propertyValue = self.rawLayer->getFillTranslateAnchor(); if (propertyValue.isUndefined()) { return MGLStyleValueTransformer().toEnumStyleValue(self.rawLayer->getDefaultFillTranslateAnchor()); } return MGLStyleValueTransformer().toEnumStyleValue(propertyValue); } - (NSValue *)mbx_getFillTranslationAnchorTransition { MGLAssertStyleLayerIsValid(); mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getFillTranslateAnchorTransition(); MGLTransition transition; transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); NSValue *transitionValue = [NSValue value:&transition withObjCType:@encode(MGLTransition)]; return transitionValue; } - (void)setFillTranslateAnchor:(MGLStyleValue *)fillTranslateAnchor { } - (MGLStyleValue *)fillTranslateAnchor { return self.fillTranslationAnchor; } - (NSValue *)mbx_getFillTranslateAnchor { return [self mbx_getFillTranslationAnchorTransition]; } @end @implementation NSValue (MGLFillStyleLayerAdditions) + (NSValue *)valueWithMGLFillTranslationAnchor:(MGLFillTranslationAnchor)fillTranslationAnchor { return [NSValue value:&fillTranslationAnchor withObjCType:@encode(MGLFillTranslationAnchor)]; } - (MGLFillTranslationAnchor)MGLFillTranslationAnchorValue { MGLFillTranslationAnchor fillTranslationAnchor; [self getValue:&fillTranslationAnchor]; return fillTranslationAnchor; } @end