From eedf0a1f8f297f438c1282c1dc689d3dfae037e4 Mon Sep 17 00:00:00 2001 From: Sakarias Johansson Date: Sun, 16 Apr 2023 18:50:30 +0200 Subject: =?UTF-8?q?=F0=9F=93=B8=20Add=20more=20keyboard=20input=20for=20ca?= =?UTF-8?q?mera?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Numpad +/- changes vfov - Numpad 8/2 to change aperture - Numpad 4/6 to change focus disance --- racer-tracer/src/scene_controller/interactive.rs | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'racer-tracer/src/scene_controller') 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); + }) + }), ] } -- cgit v1.2.3