2 CLASS(Easing) EXTENDS(Animation)
3 METHOD(Easing, calcValue, float(entity, float, float, float, float))
4 METHOD(Easing, setMath, void(entity, float(float, float, float, float)))
5 ATTRIB(Easing, math, float(float, float, float, float), easingLinear)
7 entity makeHostedEasing(entity, void(entity, float), float(float, float, float, float), float, float, float);
8 entity makeEasing(entity, void(entity, float), float(float, float, float, float), float, float, float, float);
9 float easingLinear(float, float, float, float);
10 float easingQuadIn(float, float, float, float);
11 float easingQuadOut(float, float, float, float);
12 float easingQuadInOut(float, float, float, float);
16 entity makeHostedEasing(entity obj, void(entity, float) setter, float(float, float, float, float) func, float duration, float startValue, float end)
19 me = makeEasing(obj, setter, func, time, duration, startValue, end);
20 anim.addAnim(anim, me);
24 entity makeEasing(entity obj, void(entity, float) setter, float(float, float, float, float) func, float startTime, float duration, float startValue, float end)
28 me.configureAnimation(me, obj, setter, startTime, duration, startValue, end);
33 float calcValueEasing(entity me, float time, float duration, float start, float delta)
35 return me.math(time, duration, start, delta);
38 void setMathEasing(entity me, float(float, float, float, float) func)
43 float easingLinear(float time, float duration, float start, float delta)
45 return (delta * (time / duration)) + start;
48 float easingQuadIn(float time, float duration, float start, float delta)
50 float frac = time / duration;
51 return (delta * frac * frac) + start;
54 float easingQuadOut(float time, float duration, float start, float delta)
56 float frac = time / duration;
57 return (-delta * frac * (frac - 2)) + start;
60 float easingQuadInOut(float time, float duration, float start, float delta)
62 if (time < (duration / 2))
64 return easingQuadIn(time, (duration / 2), start, (delta / 2));
68 return easingQuadOut((time - (duration / 2)), (duration / 2), (start + (delta / 2)), (delta / 2));