1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //
- // LOTMask.m
- // LottieAnimator
- //
- // Created by Brandon Withrow on 12/14/15.
- // Copyright © 2015 Brandon Withrow. All rights reserved.
- //
- #import "LOTMask.h"
- #import "CGGeometry+LOTAdditions.h"
- @implementation LOTMask
- - (instancetype)initWithJSON:(NSDictionary *)jsonDictionary {
- self = [super init];
- if (self) {
- [self _mapFromJSON:jsonDictionary];
- }
- return self;
- }
- - (void)_mapFromJSON:(NSDictionary *)jsonDictionary {
- NSNumber *closed = jsonDictionary[@"cl"];
- _closed = closed.boolValue;
-
- NSNumber *inverted = jsonDictionary[@"inv"];
- _inverted = inverted.boolValue;
-
- NSString *mode = jsonDictionary[@"mode"];
- if ([mode isEqualToString:@"a"]) {
- _maskMode = LOTMaskModeAdd;
- } else if ([mode isEqualToString:@"s"]) {
- _maskMode = LOTMaskModeSubtract;
- } else if ([mode isEqualToString:@"i"]) {
- _maskMode = LOTMaskModeIntersect;
- } else {
- _maskMode = LOTMaskModeUnknown;
- }
-
- NSDictionary *maskshape = jsonDictionary[@"pt"];
- if (maskshape) {
- _maskPath = [[LOTKeyframeGroup alloc] initWithData:maskshape];
- }
-
- NSDictionary *opacity = jsonDictionary[@"o"];
- if (opacity) {
- _opacity = [[LOTKeyframeGroup alloc] initWithData:opacity];
- [_opacity remapKeyframesWithBlock:^CGFloat(CGFloat inValue) {
- return LOT_RemapValue(inValue, 0, 100, 0, 1);
- }];
- }
-
- NSDictionary *expansion = jsonDictionary[@"x"];
- if (expansion) {
- _expansion = [[LOTKeyframeGroup alloc] initWithData:expansion];
- }
- }
- @end
|