mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-17 11:00:07 +00:00
68 lines
1.6 KiB
Objective-C
68 lines
1.6 KiB
Objective-C
//
|
|
// LOTShapeGradientFill.m
|
|
// Lottie
|
|
//
|
|
// Created by brandon_withrow on 7/26/17.
|
|
// Copyright © 2017 Airbnb. All rights reserved.
|
|
//
|
|
|
|
#import "LOTShapeGradientFill.h"
|
|
#import "CGGeometry+LOTAdditions.h"
|
|
|
|
@implementation LOTShapeGradientFill
|
|
|
|
- (instancetype)initWithJSON:(NSDictionary *)jsonDictionary {
|
|
self = [super init];
|
|
if (self) {
|
|
[self _mapFromJSON:jsonDictionary];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)_mapFromJSON:(NSDictionary *)jsonDictionary {
|
|
if (jsonDictionary[@"nm"] ) {
|
|
_keyname = [jsonDictionary[@"nm"] copy];
|
|
}
|
|
|
|
NSNumber *type = jsonDictionary[@"t"];
|
|
|
|
if (type.integerValue != 1) {
|
|
_type = LOTGradientTypeRadial;
|
|
} else {
|
|
_type = LOTGradientTypeLinear;
|
|
}
|
|
|
|
NSDictionary *start = jsonDictionary[@"s"];
|
|
if (start) {
|
|
_startPoint = [[LOTKeyframeGroup alloc] initWithData:start];
|
|
}
|
|
|
|
NSDictionary *end = jsonDictionary[@"e"];
|
|
if (end) {
|
|
_endPoint = [[LOTKeyframeGroup alloc] initWithData:end];
|
|
}
|
|
|
|
NSDictionary *gradient = jsonDictionary[@"g"];
|
|
if (gradient) {
|
|
NSDictionary *unwrappedGradient = gradient[@"k"];
|
|
_numberOfColors = gradient[@"p"];
|
|
_gradient = [[LOTKeyframeGroup alloc] initWithData:unwrappedGradient];
|
|
}
|
|
|
|
NSDictionary *opacity = jsonDictionary[@"o"];
|
|
if (opacity) {
|
|
_opacity = [[LOTKeyframeGroup alloc] initWithData:opacity];
|
|
[_opacity remapKeyframesWithBlock:^CGFloat(CGFloat inValue) {
|
|
return LOT_RemapValue(inValue, 0, 100, 0, 1);
|
|
}];
|
|
}
|
|
|
|
NSNumber *evenOdd = jsonDictionary[@"r"];
|
|
if (evenOdd.integerValue == 2) {
|
|
_evenOddFillRule = YES;
|
|
} else {
|
|
_evenOddFillRule = NO;
|
|
}
|
|
}
|
|
@end
|