polytope_playground/
camera.rs1use 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}