1use 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 ("ease", KeyFrameFunction::Ease),
13 (
14 "cubic",
15 KeyFrameFunction::new_cubic_bezier_f32(0., 0.5, 1., -0.35),
16 ),
17 ]);
18
19 kramaframe.framelist.extend([
20 ("linear", KeyList::new(1, TRES16Bits::from_millis(1000))),
21 ("ease", KeyList::new(1, TRES16Bits::from_millis(1000))),
22 ("cubic", KeyList::new(1, TRES16Bits::from_millis(1000))),
23 ]);
24
25 kramaframe.restart_progress("linear", 1);
27 for _ in 0..=61 {
28 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
29 let linear = kramaframe.get_value_byrange("linear", 1, 0..90u32);
30 println!("linear : {} : {}", linear, "█".repeat(linear as usize));
31 }
32 kramaframe.reverse_animate("linear", 1);
33 for _ in 0..=61 {
34 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
35 let linear = kramaframe.get_value_byrange("linear", 1, 0..90u32);
36 println!("linear : {} : {}", linear, "█".repeat(linear as usize));
37 }
38
39 kramaframe.restart_progress("ease", 1);
41 for _ in 0..=61 {
42 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
43 let ease = kramaframe.get_value_byrange("ease", 1, 0..90u32);
44 println!("ease : {} : {}", ease, "█".repeat(ease as usize));
45 }
46 kramaframe.reverse_animate("ease", 1);
47 for _ in 0..=61 {
48 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
49 let ease = kramaframe.get_value_byrange("ease", 1, 0..90u32);
50 println!("ease : {} : {}", ease, "█".repeat(ease as usize));
51 }
52
53 kramaframe.restart_progress("cubic", 1);
55 for _ in 0..=62 {
56 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
57 let cubic = kramaframe.get_value_byrange("cubic", 1, 0..90u32);
58 println!("cubic : {} : {}", cubic, "█".repeat(cubic as usize));
59 }
60 kramaframe.reverse_animate("cubic", 1);
61 for _ in 0..=62 {
62 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
63 let cubic = kramaframe.get_value_byrange("cubic", 1, 0..90u32);
64 println!("cubic : {} : {}", cubic, "█".repeat(cubic as usize));
65 }
66
67 kramaframe.reverse_start("linear", 1);
69 for _ in 0..=62 {
70 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
71 let linear = kramaframe.get_value_byrange("linear", 1, 0..90u32);
72 println!("linear : {} : {}", linear, "█".repeat(linear as usize));
73 }
74 kramaframe.reverse_start("ease", 1);
75 for _ in 0..=62 {
76 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
77 let ease = kramaframe.get_value_byrange("ease", 1, 0..90u32);
78 println!("ease : {} : {}", ease, "█".repeat(ease as usize));
79 }
80 kramaframe.reverse_start("cubic", 1);
81 for _ in 0..=62 {
82 kramaframe.update_progress(TRES16Bits::from_millis(1000 / 60));
83 let cubic = kramaframe.get_value_byrange("cubic", 1, 0..90u32);
84 println!("cubic : {} : {}", cubic, "█".repeat(cubic as usize));
85 }
86}