diff options
| author | Sakarias Johansson <sakarias.johansson@goodbyekansas.com> | 2023-04-14 20:58:23 +0200 |
|---|---|---|
| committer | Sakarias Johansson <sakariasjohansson@hotmail.com> | 2023-04-14 21:17:20 +0200 |
| commit | 8201c8e2a7ff85383ff7606513778253aae7e666 (patch) | |
| tree | ad0175360dc19554c6f11b1a66af210d60418f99 /racer-tracer/src/scene_controller.rs | |
| parent | 0ae6ca062f5936ae6f595f45ca0a78ed049452bc (diff) | |
| download | racer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.tar.gz racer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.tar.xz racer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.zip | |
Before you could only move the position of the camera.
- Add support for turning camera by holding down left mouse.
- Add support for turning camera with arrow keys.
- Add Mouse move callback for key_inputs.
Diffstat (limited to 'racer-tracer/src/scene_controller.rs')
| -rw-r--r-- | racer-tracer/src/scene_controller.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/racer-tracer/src/scene_controller.rs b/racer-tracer/src/scene_controller.rs index 4a867f5..3ca5b70 100644 --- a/racer-tracer/src/scene_controller.rs +++ b/racer-tracer/src/scene_controller.rs @@ -3,8 +3,13 @@ pub mod interactive; use slog::Logger; use crate::{ - camera::Camera, config::Config, error::TracerError, image::Image, key_inputs::KeyCallback, - scene::Scene, terminal::Terminal, + camera::Camera, + config::Config, + error::TracerError, + image::Image, + key_inputs::{KeyCallback, MouseCallback}, + scene::Scene, + terminal::Terminal, }; pub fn create_screen_buffer(image: &Image) -> Vec<u32> { @@ -23,7 +28,9 @@ pub struct SceneData { pub trait SceneController: Send + Sync { // Return a vector of key callbacks. The provided closure will be // called when the corresponding key is release/pressed. - fn get_inputs(&self) -> Vec<KeyCallback>; + fn key_inputs(&self) -> Vec<KeyCallback>; + + fn mouse_input(&self) -> Option<MouseCallback>; // Render function fn render(&self) -> Result<(), TracerError>; |
