summaryrefslogtreecommitdiff
path: root/racer-tracer/src/scene_controller
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/scene_controller')
-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);
+ })
+ }),
]
}