use std::collections::HashMap;
use super::action::Action;
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum ResolvedActionState {
Pressed,
Held,
Delta(glam::Vec2),
}
#[derive(Debug, Clone, Default)]
pub struct NavigationActions {
pub orbit: glam::Vec2,
pub pan: glam::Vec2,
pub zoom: f32,
}
#[derive(Debug, Clone, Default)]
pub struct ActionFrame {
pub navigation: NavigationActions,
pub actions: HashMap<Action, ResolvedActionState>,
}
impl ActionFrame {
pub fn action(&self, action: Action) -> Option<&ResolvedActionState> {
self.actions.get(&action)
}
pub fn is_active(&self, action: Action) -> bool {
self.actions.contains_key(&action)
}
}