diff options
| author | Sakarias Johansson <sakarias.johansson@goodbyekansas.com> | 2023-04-16 18:50:30 +0200 |
|---|---|---|
| committer | Sakarias Johansson <sakarias.johansson@goodbyekansas.com> | 2023-04-16 18:50:30 +0200 |
| commit | eedf0a1f8f297f438c1282c1dc689d3dfae037e4 (patch) | |
| tree | 24cee90a5b7cbfc682ff3967afd69d04af25c4f4 /racer-tracer/src/scene_controller/interactive.rs | |
| parent | 53af9befcc76054471459d216a2ab2d11e81150e (diff) | |
| download | racer-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.rs | 54 |
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); + }) + }), ] } |
