rotating_cube/
rotating_cube.rs1use duku::Camera;
8use duku::Duku;
9use duku::Hsb;
10use duku::Light;
11use duku::Result;
12use std::time::Instant;
13
14fn main() -> Result<()> {
15 let (mut duku, window) = Duku::windowed(500, 500)?;
17
18 let camera = Camera::perspective(90);
20
21 let light = Light::directional("#ffffff", [-1.0, -1.0, 1.0]);
23
24 let timer = Instant::now();
26
27 window.while_open(move |_| {
29 duku.draw(Some(&camera), |t| {
31 t.background("#ababab");
33 t.light(light);
34
35 let elapsed = timer.elapsed().as_secs_f32();
37
38 let angle = elapsed * 45.0;
40 t.rotate_x(angle);
41 t.rotate_y(angle);
42 t.translate_z(2.0);
43
44 let hue = (elapsed * 60.0) as u16;
46 t.tint(Hsb::new(hue, 70, 80));
47 t.cube([1.0, 1.0, 1.0]);
48 });
49 });
50
51 Ok(())
52}