applyEasing function
Applies easing to a normalized t (0-1).
Implementation
double applyEasing(double t, EasingFunction easing) {
return switch (easing) {
EasingFunction.linear => t,
EasingFunction.easeIn => t * t,
EasingFunction.easeOut => 1 - (1 - t) * (1 - t),
EasingFunction.easeInOut =>
t < 0.5 ? 2 * t * t : 1 - (-2 * t + 2) * (-2 * t + 2) / 2,
EasingFunction.elasticOut =>
t == 0
? 0
: t == 1
? 1
: pow(2, -10 * t) * sin((t * 10 - 0.75) * (2 * pi / 3)) + 1,
EasingFunction.bounceOut => _bounceOut(t),
};
}