summaryrefslogtreecommitdiff
path: root/racer-tracer/src/scene_controller.rs
diff options
context:
space:
mode:
authorSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-04-14 20:58:23 +0200
committerSakarias Johansson <sakariasjohansson@hotmail.com>2023-04-14 21:17:20 +0200
commit8201c8e2a7ff85383ff7606513778253aae7e666 (patch)
treead0175360dc19554c6f11b1a66af210d60418f99 /racer-tracer/src/scene_controller.rs
parent0ae6ca062f5936ae6f595f45ca0a78ed049452bc (diff)
downloadracer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.tar.gz
racer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.tar.xz
racer-tracer-8201c8e2a7ff85383ff7606513778253aae7e666.zip
✨ Add support for camera rotationHEADmain
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.rs13
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>;