This commit is contained in:
Hanno Braun 2024-11-15 18:24:28 +01:00
parent 04bd789006
commit 8065543d8e
3 changed files with 17 additions and 26 deletions

View File

@ -7,19 +7,11 @@ use crate::{
use super::InputEvent; use super::InputEvent;
/// Input handling abstraction pub fn handle_event(
///
/// Takes user input and applies them to application state.
#[derive(Default)]
pub struct InputHandler;
impl InputHandler {
/// Handle an input event
pub fn handle_event(
event: InputEvent, event: InputEvent,
focus_point: FocusPoint, focus_point: FocusPoint,
camera: &mut Camera, camera: &mut Camera,
) { ) {
match event { match event {
InputEvent::Translation { previous, current } => { InputEvent::Translation { previous, current } => {
apply_translation(previous, current, focus_point, camera); apply_translation(previous, current, focus_point, camera);
@ -31,7 +23,6 @@ impl InputHandler {
apply_zoom(zoom_delta, focus_point, camera); apply_zoom(zoom_delta, focus_point, camera);
} }
} }
}
} }
pub fn apply_translation( pub fn apply_translation(

View File

@ -3,4 +3,4 @@
mod event; mod event;
mod handler; mod handler;
pub use self::{event::InputEvent, handler::InputHandler}; pub use self::{event::InputEvent, handler::handle_event};

View File

@ -4,7 +4,7 @@ use tracing::warn;
use crate::{ use crate::{
camera::{Camera, FocusPoint}, camera::{Camera, FocusPoint},
graphics::{DrawConfig, Renderer}, graphics::{DrawConfig, Renderer},
input::InputHandler, input::handle_event,
InputEvent, NormalizedScreenPosition, RendererInitError, Screen, InputEvent, NormalizedScreenPosition, RendererInitError, Screen,
ScreenSize, ScreenSize,
}; };
@ -62,7 +62,7 @@ impl Viewer {
/// Handle an input event /// Handle an input event
pub fn handle_input_event(&mut self, event: InputEvent) { pub fn handle_input_event(&mut self, event: InputEvent) {
if let Some(focus_point) = self.focus_point { if let Some(focus_point) = self.focus_point {
InputHandler::handle_event(event, focus_point, &mut self.camera); handle_event(event, focus_point, &mut self.camera);
} }
} }