diff options
Diffstat (limited to 'platform/darwin/src/MGLCircleStyleLayer.mm')
-rw-r--r-- | platform/darwin/src/MGLCircleStyleLayer.mm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLCircleStyleLayer.mm b/platform/darwin/src/MGLCircleStyleLayer.mm index 42961f2e12..71ae37035e 100644 --- a/platform/darwin/src/MGLCircleStyleLayer.mm +++ b/platform/darwin/src/MGLCircleStyleLayer.mm @@ -13,6 +13,11 @@ namespace mbgl { + MBGL_DEFINE_ENUM(MGLCirclePitchAlignment, { + { MGLCirclePitchAlignmentMap, "map" }, + { MGLCirclePitchAlignmentViewport, "viewport" }, + }); + MBGL_DEFINE_ENUM(MGLCircleScaleAlignment, { { MGLCircleScaleAlignmentMap, "map" }, { MGLCircleScaleAlignmentViewport, "viewport" }, @@ -187,6 +192,23 @@ namespace mbgl { return transition; } +- (void)setCirclePitchAlignment:(MGLStyleValue<NSValue *> *)circlePitchAlignment { + MGLAssertStyleLayerIsValid(); + + auto mbglValue = MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *, mbgl::style::AlignmentType, MGLCirclePitchAlignment>().toEnumPropertyValue(circlePitchAlignment); + self.rawLayer->setCirclePitchAlignment(mbglValue); +} + +- (MGLStyleValue<NSValue *> *)circlePitchAlignment { + MGLAssertStyleLayerIsValid(); + + auto propertyValue = self.rawLayer->getCirclePitchAlignment(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *, mbgl::style::AlignmentType, MGLCirclePitchAlignment>().toEnumStyleValue(self.rawLayer->getDefaultCirclePitchAlignment()); + } + return MGLStyleValueTransformer<mbgl::style::AlignmentType, NSValue *, mbgl::style::AlignmentType, MGLCirclePitchAlignment>().toEnumStyleValue(propertyValue); +} + - (void)setCircleRadius:(MGLStyleValue<NSNumber *> *)circleRadius { MGLAssertStyleLayerIsValid(); @@ -421,6 +443,16 @@ namespace mbgl { @implementation NSValue (MGLCircleStyleLayerAdditions) ++ (NSValue *)valueWithMGLCirclePitchAlignment:(MGLCirclePitchAlignment)circlePitchAlignment { + return [NSValue value:&circlePitchAlignment withObjCType:@encode(MGLCirclePitchAlignment)]; +} + +- (MGLCirclePitchAlignment)MGLCirclePitchAlignmentValue { + MGLCirclePitchAlignment circlePitchAlignment; + [self getValue:&circlePitchAlignment]; + return circlePitchAlignment; +} + + (NSValue *)valueWithMGLCircleScaleAlignment:(MGLCircleScaleAlignment)circleScaleAlignment { return [NSValue value:&circleScaleAlignment withObjCType:@encode(MGLCircleScaleAlignment)]; } |