123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // 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
|