diff --git a/ECS/Components/MouseLook.h b/ECS/Components/MouseLook.h index b98d072..eb00a70 100644 --- a/ECS/Components/MouseLook.h +++ b/ECS/Components/MouseLook.h @@ -11,6 +11,8 @@ struct MouseLook { explicit MouseLook(float sensitivity) : sensitivity(sensitivity) {} + glm::vec3 get_look_direction() { return glm::mat3_cast(rotation) * glm::vec3(0, 0, -1); } + float sensitivity; double yaw = 0.0; diff --git a/ECS/Systems/CollisionSystem.h b/ECS/Systems/CollisionSystem.h index 77e569e..70e6b03 100644 --- a/ECS/Systems/CollisionSystem.h +++ b/ECS/Systems/CollisionSystem.h @@ -78,8 +78,11 @@ class CollisionSystem : public EntitySystem { glm::vec3 origin_glm = transform->get_origin(); Vector origin = Vector(origin_glm.x, origin_glm.y, origin_glm.z); + glm::vec3 direction_glm = mouse_look->get_look_direction(); + Vector direction = Vector(direction_glm.x, direction_glm.y, direction_glm.z); + // TODO: Get mouse look direction - Ray ray(origin, Vector(0, 0, -3)); + Ray ray(origin, direction * 5.0); Triangle *result = kdtree->intersect_ray(ray);