use super::*;
#[derive(Clone, Debug, PartialEq)]
pub(crate) struct Cube3D {
pub(crate) position: Vector3D,
pub(crate) rotation: Quaternion,
pub(crate) angular_velocity: Vector3D,
pub(crate) scale: f64,
pub(crate) face_color: String,
pub(crate) edge_color: String,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame3D {
#[get(type(copy))]
pub(crate) running: Signal<bool>,
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) cube_count: Signal<usize>,
#[get(type(copy))]
pub(crate) auto_rotate: Signal<bool>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
}
#[derive(Clone, Debug)]
pub(crate) struct CameraAngles {
pub(crate) yaw: Rc<Cell<f64>>,
pub(crate) pitch: Rc<Cell<f64>>,
}
#[derive(Clone, Debug)]
pub(crate) struct CubeStore(pub(crate) Rc<RefCell<Vec<Cube3D>>>);
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame3DWebGpu {
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
#[get(type(copy))]
pub(crate) active: Signal<bool>,
#[get(type(copy))]
pub(crate) loop_started: Signal<bool>,
#[get(type(copy))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame3DWebGl {
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
#[get(type(copy))]
pub(crate) active: Signal<bool>,
#[get(type(copy))]
pub(crate) loop_started: Signal<bool>,
#[get(type(copy))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame3DFullscreen {
#[get(type(copy))]
pub(crate) canvas_2d: Signal<bool>,
#[get(type(copy))]
pub(crate) web_gl: Signal<bool>,
#[get(type(copy))]
pub(crate) web_gpu: Signal<bool>,
}