Skip to main content

polytope_playground/
camera.rs

1use loam::app::session::FreeCamera;
2use loam::runtime::ActionId;
3
4pub(crate) const RIGHT: ActionId = ActionId(20);
5pub(crate) const LEFT: ActionId = ActionId(21);
6pub(crate) const FORWARD: ActionId = ActionId(22);
7pub(crate) const BACKWARD: ActionId = ActionId(23);
8
9#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
10pub(crate) enum CameraMode {
11    #[default]
12    Orbit,
13    Freecam,
14}
15
16#[derive(Clone, Copy, Debug, PartialEq)]
17pub(crate) struct Camera {
18    pub(crate) mode: CameraMode,
19    pub(crate) speed: f32,
20    pub(crate) free: FreeCamera,
21    pub(crate) cursor_policy: loam::app::CursorPolicy,
22}
23
24impl Default for Camera {
25    fn default() -> Self {
26        Self {
27            mode: CameraMode::Orbit,
28            speed: 4.5,
29            free: FreeCamera::default(),
30            cursor_policy: loam::app::CursorPolicy::Toggle,
31        }
32    }
33}