mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-18 03:20:09 +00:00
60 lines
1.5 KiB
Objective-C
60 lines
1.5 KiB
Objective-C
//
|
|
// 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
|