rscenes_raylib_connector/
rcamera.rs1use raylib_ffi::{enums::CameraMode, *};
2use std::fmt::Debug;
3
4#[derive(Clone, Copy, Debug, Default)]
5pub(crate) struct RcameraImpl;
6
7impl RcameraImpl {
9 pub fn __update_camera(camera: &mut Camera3D, mode: impl Into<usize>) {
10 unsafe { UpdateCamera(camera, mode.into() as i32) }
11 }
12
13 pub fn __update_camera_pro(
14 camera: &mut Camera3D,
15 movement: Vector3,
16 rotation: Vector3,
17 zoom: f32,
18 ) {
19 unsafe { UpdateCameraPro(camera, movement, rotation, zoom) }
20 }
21}
22
23pub trait Rcamera: Debug {
25 fn update_camera(&self, camera: &mut Camera3D, mode: CameraMode) {
27 RcameraImpl::__update_camera(camera, mode as usize)
28 }
29
30 fn update_camera_pro(
32 &self,
33 camera: &mut Camera3D,
34 movement: Vector3,
35 rotation: Vector3,
36 zoom: f32,
37 ) {
38 RcameraImpl::__update_camera_pro(camera, movement, rotation, zoom)
39 }
40}