package it.sephiroth.android.library.easing;
public class Bounce implements Easing {
@Override
public double easeOut(double t, double b, double c, double d) {
if ((t /= d) < (1.0 / 2.75)) {
return c * (7.5625 * t * t) + b;
} else if (t < (2.0 / 2.75)) {
return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
} else if (t < (2.5 / 2.75)) {
return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
} else {
return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
}
}
@Override
public double easeIn(double t, double b, double c, double d) {
return c - easeOut(d - t, 0, c, d) + b;
}
@Override
public double easeInOut(double t, double b, double c, double d) {
if (t < d / 2.0)
return easeIn(t * 2.0, 0, c, d) * .5 + b;
else
return easeOut(t * 2.0 - d, 0, c, d) * .5 + c * .5 + b;
}
}