AppKit/CPAnimation.j File Reference

Go to the source code of this file.

Variables

 ACTUAL_FRAME_RATE = 0
 CPAnimationEaseIn = 1
import< Foundation/CPObject.j >
import CAMediaTimingFunction
j 
CPAnimationEaseInOut = 0
 CPAnimationEaseOut = 2
 CPAnimationLinear = 3
var CubicBezierAtTime

Variable Documentation

Definition at line 49 of file CPAnimation.j.

Definition at line 37 of file CPAnimation.j.

import<Foundation/CPObject.j> import CAMediaTimingFunction j CPAnimationEaseInOut = 0

Definition at line 32 of file CPAnimation.j.

Definition at line 42 of file CPAnimation.j.

Definition at line 47 of file CPAnimation.j.

Initial value:
 function CubicBezierAtTime(t,p1x,p1y,p2x,p2y,duration)
{
    var ax=0,bx=0,cx=0,ay=0,by=0,cy=0;
    
    function sampleCurveX(t) {return ((ax*t+bx)*t+cx)*t;};
    function sampleCurveY(t) {return ((ay*t+by)*t+cy)*t;};
    function sampleCurveDerivativeX(t) {return (3.0*ax*t+2.0*bx)*t+cx;};
    
    function solveEpsilon(duration) {return 1.0/(200.0*duration);};
    function solve(x,epsilon) {return sampleCurveY(solveCurveX(x,epsilon));};
    
    function solveCurveX(x,epsilon) {var t0,t1,t2,x2,d2,i;
        function fabs(n) {if(n>=0) {return n;}else {return 0-n;}}; 
        
        for(t2=x, i=0; i<8; i++) {x2=sampleCurveX(t2)-x; if(fabs(x2)<epsilon) {return t2;} d2=sampleCurveDerivativeX(t2); if(fabs(d2)<1e-6) {break;} t2=t2-x2/d2;}
        
        t0=0.0; t1=1.0; t2=x; if(t2<t0) {return t0;} if(t2>t1) {return t1;}
        while(t0<t1) {x2=sampleCurveX(t2); if(fabs(x2-x)<epsilon) {return t2;} if(x>x2) {t0=t2;}else {t1=t2;} t2=(t1-t0)*.5+t0;}
        return t2; 
    };
    
    cx=3.0*p1x; bx=3.0*(p2x-p1x)-cx; ax=1.0-cx-bx; cy=3.0*p1y; by=3.0*(p2y-p1y)-cy; ay=1.0-cy-by;
    
    return solve(t, solveEpsilon(duration));
}

Definition at line 323 of file CPAnimation.j.


Generated on Fri Apr 9 11:04:09 2010 for Cappuccino API by  doxygen 1.6.1