raylib-cpp
C++ object-oriented wrapper library for raylib.
Loading...
Searching...
No Matches
RayCollision.hpp
1#ifndef RAYLIB_CPP_INCLUDE_RAYCOLLISION_HPP_
2#define RAYLIB_CPP_INCLUDE_RAYCOLLISION_HPP_
3
4#include "./raylib.hpp"
5#include "./raylib-cpp-utils.hpp"
6
7namespace raylib {
11class RayCollision : public ::RayCollision {
12 public:
13 RayCollision(const ::RayCollision& ray) {
14 set(ray);
15 }
16
17 RayCollision(bool hit, float distance,
18 ::Vector3 point, ::Vector3 normal) : ::RayCollision{hit, distance, point, normal} {
19 // Nothing.
20 }
21
25 RayCollision(const ::Ray& ray, const ::BoundingBox& box) {
26 set(::GetRayCollisionBox(ray, box));
27 }
28
32 RayCollision(const ::Ray& ray, const ::Mesh& mesh, const ::Matrix& transform) {
33 set(::GetRayCollisionMesh(ray, mesh, transform));
34 }
35
39 RayCollision(const ::Ray& ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3, ::Vector3 p4) {
40 set(::GetRayCollisionQuad(ray, p1, p2, p3, p4));
41 }
42
46 RayCollision(const ::Ray& ray, ::Vector3 center, float radius) {
47 set(::GetRayCollisionSphere(ray, center, radius));
48 }
49
53 RayCollision(const ::Ray& ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3) {
54 set(::GetRayCollisionTriangle(ray, p1, p2, p3));
55 }
56
57 RayCollision& operator=(const ::RayCollision& ray) {
58 set(ray);
59 return *this;
60 }
61
62 GETTERSETTER(bool, Hit, hit)
63 GETTERSETTER(float, Distance, distance)
64 GETTERSETTER(::Vector3, Position, point)
65 GETTERSETTER(::Vector3, Normal, normal)
66
67 protected:
68 void set(const ::RayCollision& ray) {
69 hit = ray.hit;
70 distance = ray.distance;
71 point = ray.point;
72 normal = ray.normal;
73 }
74};
75} // namespace raylib
76
78
79#endif // RAYLIB_CPP_INCLUDE_RAYCOLLISION_HPP_
Raycast hit information.
RayCollision(const ::Ray &ray, const ::Mesh &mesh, const ::Matrix &transform)
Get collision info between ray and mesh.
RayCollision(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3)
Get collision info between ray and triangle.
RayCollision(const ::Ray &ray, const ::BoundingBox &box)
Get collision info between ray and bounding box.
RayCollision(const ::Ray &ray, ::Vector3 p1, ::Vector3 p2, ::Vector3 p3, ::Vector3 p4)
Get collision info between ray and quad.
RayCollision(const ::Ray &ray, ::Vector3 center, float radius)
Get collision info between ray and sphere.
Vector3 type.
Definition: Vector3.hpp:19