27 s = step = (float)(fc - fp) / (fn - fp);
28 tofrom = ease_to + ease_from;
31 ease_to = (float)(ease_to / tofrom);
32 ease_from = (float)(ease_from / tofrom);
34 a = 1.0 / (2.0 - (ease_to + ease_from));
36 if (step < ease_from) s = a / ease_from * step * step;
38 if ((1.0 - ease_to) <= step) {
40 s = 1.0 - a / ease_to * step * step;
42 s = ((2.0 * step) - ease_from) *
a;
55 x = 2 * t * t * t - 3 * t * t + 1;
56 y = -2 * t * t * t + 3 * t *
t;
57 z = t * t * t - 2 * t * t +
t;
58 w = t * t * t - t *
t;
59 for (i = 0; i <
n; ++
i) {
60 v[
i] = x * a[
i] + y * b[
i] + z * p[
i] + w * q[
i];
LIB3DSAPI void lib3ds_math_cubic_interp(float *v, float *a, float *p, float *q, float *b, int n, float t)
LIB3DSAPI float lib3ds_math_ease(float fp, float fc, float fn, float ease_from, float ease_to)
GLboolean GLboolean GLboolean GLboolean a
EGLSurface EGLint EGLint y
GLdouble GLdouble GLdouble GLdouble q
GLdouble GLdouble GLdouble b
GLint GLint GLint GLint z
GLint GLint GLint GLint GLint w