allkeyframe/
allkeyframe.rs1use kramaframe::{
2 BTframelist, KramaFrame,
3 keyframe::KeyFrameFunction,
4 keylist::{KeyList, TRES16Bits},
5};
6
7fn main() {
8 let mut kramaframe: KramaFrame<_, BTframelist<TRES16Bits, i32>> = KramaFrame::default();
9
10 kramaframe.extend_iter_classlist([
11 ("linear", KeyFrameFunction::Linear),
12 ("easein", KeyFrameFunction::EaseIn),
13 ("easeout", KeyFrameFunction::EaseOut),
14 ("easeinout", KeyFrameFunction::EaseInOut),
15 (
16 "cubic",
17 KeyFrameFunction::new_cubic_bezier_f32(0., 1.26, 1., -0.79),
18 ),
19 ("step", KeyFrameFunction::Steps(5)),
20 ]);
21
22 kramaframe.framelist.extend([
23 ("linear", KeyList::new(1, TRES16Bits::from_millis(1000))),
24 ("easein", KeyList::new(1, TRES16Bits::from_millis(1000))),
25 ("easeout", KeyList::new(1, TRES16Bits::from_millis(1000))),
26 ("easeinout", KeyList::new(1, TRES16Bits::from_millis(1000))),
27 ("easeinout", KeyList::new(1, TRES16Bits::from_millis(1000))),
28 ("cubic", KeyList::new(1, TRES16Bits::from_millis(1000))),
29 ("step", KeyList::new(1, TRES16Bits::from_millis(1000))),
30 ]);
31
32 for _ in 0..=60 {
34 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
35 let linear =
36 kramaframe.animate_by_closure_range("linear", 1, |x| !x, |ongoing| !ongoing, 0..90u32);
37 println!("linear : {} : {}", linear, "█".repeat(linear as usize));
38 }
39 for _ in 0..=90 {
41 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 90));
42 let easein =
43 kramaframe.animate_by_closure_range("easein", 1, |x| !x, |ongoing| !ongoing, 0..90u32);
44 println!("easein : {} : {}", easein, "█".repeat(easein as usize));
45 }
46 for _ in 0..=90 {
48 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 90));
49 let easeout =
50 kramaframe.animate_by_closure_range("easeout", 1, |x| !x, |ongoing| !ongoing, 0..90u32);
51 println!("easeout : {} : {}", easeout, "█".repeat(easeout as usize));
52 }
53 for _ in 0..=90 {
55 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 90));
56 let easeinout = kramaframe.animate_by_closure_range(
57 "easeinout",
58 1,
59 |x| !x,
60 |ongoing| !ongoing,
61 0..90u32,
62 );
63 println!(
64 "easeinout : {} : {}",
65 easeinout,
66 "█".repeat(easeinout as usize)
67 );
68 }
69 for _ in 0..=90 {
71 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 90));
72 let cubic =
73 kramaframe.animate_by_closure_range("cubic", 1, |x| !x, |ongoing| !ongoing, 0..90u32);
74 println!("cubic : {} : {}", cubic, "█".repeat(cubic as usize));
75 }
76 for _ in 0..=90 {
78 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 90));
79 let steps =
80 kramaframe.animate_by_closure_range("step", 1, |x| !x, |ongoing| !ongoing, 0..90u32);
81 println!("steps : {} : {}", steps, "█".repeat(steps as usize));
82 }
83}