Skip to main content

animate_core/tween/
easing.rs

1pub fn linear(t: f64) -> f64 {
2    t
3}
4
5pub fn quad_in(t: f64) -> f64 {
6    t * t
7}
8
9pub fn quad_out(t: f64) -> f64 {
10    t * (2.0 - t)
11}
12
13pub fn quad_in_out(t: f64) -> f64 {
14    if t < 0.5 {
15        2.0 * t * t
16    } else {
17        -1.0 + (4.0 - 2.0 * t) * t
18    }
19}
20
21pub fn cubic_in(t: f64) -> f64 {
22    t * t * t
23}
24
25pub fn cubic_out(t: f64) -> f64 {
26    let t = t - 1.0;
27    t * t * t + 1.0
28}
29
30pub fn cubic_in_out(t: f64) -> f64 {
31    if t < 0.5 {
32        4.0 * t * t * t
33    } else {
34        let t = t - 1.0;
35        1.0 + 4.0 * t * t * t
36    }
37}