rscenes_raylib_connector/ext/
ray.rs1use crate::rcore::RcoreImpl;
2use crate::rmodels_collisions::RmodelsCollisionsImpl;
3use raylib_ffi::*;
4
5pub trait RayExt: Sized {
6 fn get_mouse_ray(mouse_position: Vector2, camera: Camera3D) -> Self;
8
9 fn get_collision_sphere(self, center: Vector3, radius: f32) -> RayCollision;
11 fn get_collision_box(self, box_: BoundingBox) -> RayCollision;
13 fn get_collision_mesh(self, mesh: Mesh, transform: Matrix) -> RayCollision;
15 fn get_collision_triangle(self, p1: Vector3, p2: Vector3, p3: Vector3) -> RayCollision;
17 fn get_collision_quad(self, p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3)
19 -> RayCollision;
20}
21
22impl RayExt for Ray {
23 fn get_mouse_ray(mouse_position: Vector2, camera: Camera3D) -> Self {
24 RcoreImpl::__get_mouse_ray(mouse_position, camera)
25 }
26
27 fn get_collision_sphere(self, center: Vector3, radius: f32) -> RayCollision {
28 RmodelsCollisionsImpl::__get_raycollision_sphere(self, center, radius)
29 }
30
31 fn get_collision_box(self, box_: BoundingBox) -> RayCollision {
32 RmodelsCollisionsImpl::__get_raycollision_box(self, box_)
33 }
34
35 fn get_collision_mesh(self, mesh: Mesh, transform: Matrix) -> RayCollision {
36 RmodelsCollisionsImpl::__get_raycollision_mesh(self, mesh, transform)
37 }
38
39 fn get_collision_triangle(self, p1: Vector3, p2: Vector3, p3: Vector3) -> RayCollision {
40 RmodelsCollisionsImpl::__get_raycollision_triangle(self, p1, p2, p3)
41 }
42
43 fn get_collision_quad(
44 self,
45 p1: Vector3,
46 p2: Vector3,
47 p3: Vector3,
48 p4: Vector3,
49 ) -> RayCollision {
50 RmodelsCollisionsImpl::__get_raycollision_quad(self, p1, p2, p3, p4)
51 }
52}