1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // LOTBlockCallback.m
- // Lottie
- //
- // Created by brandon_withrow on 12/15/17.
- // Copyright © 2017 Airbnb. All rights reserved.
- //
- #import "LOTBlockCallback.h"
- @implementation LOTColorBlockCallback
- + (instancetype)withBlock:(LOTColorValueCallbackBlock)block {
- LOTColorBlockCallback *colorCallback = [[self alloc] init];
- colorCallback.callback = block;
- return colorCallback;
- }
- - (CGColorRef)colorForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startColor:(CGColorRef)startColor endColor:(CGColorRef)endColor currentColor:(CGColorRef)interpolatedColor {
- return self.callback(currentFrame, startKeyframe, endKeyframe, interpolatedProgress, startColor, endColor, interpolatedColor);
- }
- @end
- @implementation LOTNumberBlockCallback
- + (instancetype)withBlock:(LOTNumberValueCallbackBlock)block {
- LOTNumberBlockCallback *numberCallback = [[self alloc] init];
- numberCallback.callback = block;
- return numberCallback;
- }
- - (CGFloat)floatValueForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startValue:(CGFloat)startValue endValue:(CGFloat)endValue currentValue:(CGFloat)interpolatedValue {
- return self.callback(currentFrame, startKeyframe, endKeyframe, interpolatedProgress, startValue, endValue, interpolatedValue);
- }
- @end
- @implementation LOTPointBlockCallback
- + (instancetype)withBlock:(LOTPointValueCallbackBlock)block {
- LOTPointBlockCallback *callback = [[self alloc] init];
- callback.callback = block;
- return callback;
- }
- - (CGPoint)pointForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint currentPoint:(CGPoint)interpolatedPoint {
- return self.callback(currentFrame, startKeyframe, endKeyframe, interpolatedProgress, startPoint, endPoint, interpolatedPoint);
- }
- @end
- @implementation LOTSizeBlockCallback
- + (instancetype)withBlock:(LOTSizeValueCallbackBlock)block {
- LOTSizeBlockCallback *callback = [[self alloc] init];
- callback.callback = block;
- return callback;
- }
- - (CGSize)sizeForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startSize:(CGSize)startSize endSize:(CGSize)endSize currentSize:(CGSize)interpolatedSize {
- return self.callback(currentFrame, startKeyframe, endKeyframe, interpolatedProgress, startSize, endSize, interpolatedSize);
- }
- @end
- @implementation LOTPathBlockCallback
- + (instancetype)withBlock:(LOTPathValueCallbackBlock)block {
- LOTPathBlockCallback *callback = [[self alloc] init];
- callback.callback = block;
- return callback;
- }
- - (CGPathRef)pathForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress {
- return self.callback(currentFrame, startKeyframe, endKeyframe, interpolatedProgress);
- }
- @end
|