diff options
author | Fabian Guerra Soto <fabian.guerra@mapbox.com> | 2017-03-10 11:33:31 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-10 11:33:31 -0800 |
commit | 20712b7c84bd91bcf658d74bf25f3460354b5fd6 (patch) | |
tree | c12fd8cf71d293ddfc123f9e1d0af1dafa887750 /platform/darwin/src/MGLLineStyleLayer.mm | |
parent | 4a0ce1365f469c5da30aa7136ec5d31dfd621ff1 (diff) | |
download | qtlocation-mapboxgl-20712b7c84bd91bcf658d74bf25f3460354b5fd6.tar.gz |
Per-attribute transition properties on MGLStyleLayer (#8225)
* [ios, macos] new struct MGLTransition
* [ios] MGLTransition struct moved to MGLTypes.h
* [ios] MGLTransition implemented for style layer properties
* [ios, macos] added support for getting property transitions
* [ios, macos] updated to MGLDurationFromTimeInterval and MGLTimeIntervalFromDuration
* [ios, macos] added transition properties test
* [ios, macos] modified key strings imp
* [ios, macos] The impl for transition properties were changed to public methods
* [ios, macos] Changelog update
* [ios] Fixed layer space formatting
* [core] The name space was fixed for getters that returned TransitionOptions
* [ios, macos] Added rawLayer transition property tests
* [ios] Added a factory method for MGLTransition and transition-related methods to NSValue(MGLAdditions)
* [ios, macos] Copyedited changelog blurbs about transition properties
Diffstat (limited to 'platform/darwin/src/MGLLineStyleLayer.mm')
-rw-r--r-- | platform/darwin/src/MGLLineStyleLayer.mm | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLLineStyleLayer.mm b/platform/darwin/src/MGLLineStyleLayer.mm index 80b1e907e6..e37489cf0b 100644 --- a/platform/darwin/src/MGLLineStyleLayer.mm +++ b/platform/darwin/src/MGLLineStyleLayer.mm @@ -4,6 +4,7 @@ #import "MGLSource.h" #import "MGLMapView_Private.h" #import "NSPredicate+MGLAdditions.h" +#import "NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" #import "MGLStyleValue_Private.h" #import "MGLLineStyleLayer.h" @@ -228,6 +229,24 @@ namespace mbgl { return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } +- (void)setLineBlurTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineBlurTransition(options); +} + +- (MGLTransition)lineBlurTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineBlurTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineColor:(MGLStyleValue<MGLColor *> *)lineColor { MGLAssertStyleLayerIsValid(); @@ -245,6 +264,24 @@ namespace mbgl { return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toDataDrivenStyleValue(propertyValue); } +- (void)setLineColorTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineColorTransition(options); +} + +- (MGLTransition)lineColorTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineColorTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineDashPattern:(MGLStyleValue<NSArray<NSNumber *> *> *)lineDashPattern { MGLAssertStyleLayerIsValid(); @@ -262,6 +299,24 @@ namespace mbgl { return MGLStyleValueTransformer<std::vector<float>, NSArray<NSNumber *> *, float>().toStyleValue(propertyValue); } +- (void)setLineDashPatternTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineDasharrayTransition(options); +} + +- (MGLTransition)lineDashPatternTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineDasharrayTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineDasharray:(MGLStyleValue<NSArray<NSNumber *> *> *)lineDasharray { } @@ -286,6 +341,24 @@ namespace mbgl { return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } +- (void)setLineGapWidthTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineGapWidthTransition(options); +} + +- (MGLTransition)lineGapWidthTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineGapWidthTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineOffset:(MGLStyleValue<NSNumber *> *)lineOffset { MGLAssertStyleLayerIsValid(); @@ -303,6 +376,24 @@ namespace mbgl { return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } +- (void)setLineOffsetTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineOffsetTransition(options); +} + +- (MGLTransition)lineOffsetTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineOffsetTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineOpacity:(MGLStyleValue<NSNumber *> *)lineOpacity { MGLAssertStyleLayerIsValid(); @@ -320,6 +411,24 @@ namespace mbgl { return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } +- (void)setLineOpacityTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineOpacityTransition(options); +} + +- (MGLTransition)lineOpacityTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineOpacityTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLinePattern:(MGLStyleValue<NSString *> *)linePattern { MGLAssertStyleLayerIsValid(); @@ -337,6 +446,24 @@ namespace mbgl { return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue); } +- (void)setLinePatternTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLinePatternTransition(options); +} + +- (MGLTransition)linePatternTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLinePatternTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineTranslation:(MGLStyleValue<NSValue *> *)lineTranslation { MGLAssertStyleLayerIsValid(); @@ -354,6 +481,24 @@ namespace mbgl { return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue); } +- (void)setLineTranslationTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineTranslateTransition(options); +} + +- (MGLTransition)lineTranslationTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineTranslateTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} + - (void)setLineTranslate:(MGLStyleValue<NSValue *> *)lineTranslate { } @@ -402,6 +547,23 @@ namespace mbgl { return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); } +- (void)setLineWidthTransition:(MGLTransition )transition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions options { { MGLDurationFromTimeInterval(transition.duration) }, { MGLDurationFromTimeInterval(transition.delay) } }; + self.rawLayer->setLineWidthTransition(options); +} + +- (MGLTransition)lineWidthTransition { + MGLAssertStyleLayerIsValid(); + + mbgl::style::TransitionOptions transitionOptions = self.rawLayer->getLineWidthTransition(); + MGLTransition transition; + transition.duration = MGLTimeIntervalFromDuration(transitionOptions.duration.value_or(mbgl::Duration::zero())); + transition.delay = MGLTimeIntervalFromDuration(transitionOptions.delay.value_or(mbgl::Duration::zero())); + + return transition; +} @end |