summaryrefslogtreecommitdiff
path: root/racer-tracer/src/scene_controller/interactive.rs
diff options
context:
space:
mode:
authorSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-04-16 18:50:30 +0200
committerSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-04-16 18:50:30 +0200
commiteedf0a1f8f297f438c1282c1dc689d3dfae037e4 (patch)
tree24cee90a5b7cbfc682ff3967afd69d04af25c4f4 /racer-tracer/src/scene_controller/interactive.rs
parent53af9befcc76054471459d216a2ab2d11e81150e (diff)
downloadracer-tracer-eedf0a1f8f297f438c1282c1dc689d3dfae037e4.tar.gz
racer-tracer-eedf0a1f8f297f438c1282c1dc689d3dfae037e4.tar.xz
racer-tracer-eedf0a1f8f297f438c1282c1dc689d3dfae037e4.zip
📸 Add more keyboard input for cameracamera-keys
- Numpad +/- changes vfov - Numpad 8/2 to change aperture - Numpad 4/6 to change focus disance
Diffstat (limited to 'racer-tracer/src/scene_controller/interactive.rs')
-rw-r--r--racer-tracer/src/scene_controller/interactive.rs54
1 files changed, 54 insertions, 0 deletions
diff --git a/racer-tracer/src/scene_controller/interactive.rs b/racer-tracer/src/scene_controller/interactive.rs
index 5fdecfc..bf0d50d 100644
--- a/racer-tracer/src/scene_controller/interactive.rs
+++ b/racer-tracer/src/scene_controller/interactive.rs
@@ -138,6 +138,60 @@ impl<'renderer, 'action> SceneController for InteractiveScene<'renderer, 'action
cam.go_right(dt * self.camera_speed);
})
}),
+ KeyInputs::input(KeyEvent::Release, Key::NumPadMinus, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let vfov = cam.get_vfov();
+ cam.set_fov(vfov + 1.0);
+ })
+ }),
+ KeyInputs::input(KeyEvent::Release, Key::NumPadPlus, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let vfov = cam.get_vfov();
+ cam.set_fov(vfov - 1.0);
+ })
+ }),
+ KeyInputs::input(KeyEvent::Release, Key::NumPad8, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let aperture = cam.get_aperture();
+ cam.set_aperture(aperture + 0.01);
+ })
+ }),
+ KeyInputs::input(KeyEvent::Release, Key::NumPad2, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let aperture = cam.get_aperture();
+ cam.set_aperture(aperture - 0.01);
+ })
+ }),
+ KeyInputs::input(KeyEvent::Release, Key::NumPad4, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let focus_distance = cam.get_focus_distance();
+ cam.set_focus_distance(focus_distance + 1.0);
+ })
+ }),
+ KeyInputs::input(KeyEvent::Release, Key::NumPad6, |_| {
+ self.camera
+ .write()
+ .map_err(|e| TracerError::KeyError(e.to_string()))
+ .map(|mut cam| {
+ let focus_distance = cam.get_focus_distance();
+ cam.set_focus_distance(focus_distance - 1.0);
+ })
+ }),
]
}