185
@interface NSObject (ElCGPositionAnimation)
186
- (void) setPosition: (CGPoint) p;
189
@implementation ElCGPositionAnimation
191
- (BOOL) animateForTime: (NSTimeInterval) time delta: (NSTimeInterval) delta
193
BOOL result = [super animateForTime: time delta: delta];
195
double t = fclamp((time - startTime)/duration, 0.0, 1.0);
197
CGPoint y = CGPointZero;
198
switch (interpolation)
200
case kElLinearInterpolation:
201
y.x = linearInterpolation(startPoint.x, endPoint.x, t);
202
y.y = linearInterpolation(startPoint.y, endPoint.y, t);
204
case kElEaseInInterpolation:
205
y.x = easyInInterpolation(startPoint.x, endPoint.x, t);
206
y.y = easyInInterpolation(startPoint.y, endPoint.y, t);
208
case kElEaseOutInterpolation:
209
y.x = easyOutInterpolation(startPoint.x, endPoint.x, t);
210
y.y = easyOutInterpolation(startPoint.y, endPoint.y, t);
212
case kElSmoothInterpolation:
213
y.x = smoothInterpolation(startPoint.x, endPoint.x, t);
214
y.y = smoothInterpolation(startPoint.y, endPoint.y, t);
218
[target setPosition: y];
230
@synthesize startPoint, endPoint, target;
180
235
@implementation ElAnimationController