#pragma once #include "utils/thread_pool.h" #include "vulkan_engine/asset/object/model.h" #include "vulkan_engine/vulkan/vertex.h" namespace veng { class Physics { public: static void invokeOnColisionEvent( gsl::not_null thread_pool, std::unordered_map>& models); static void invokeOnColisionEvent( gsl::not_null thread_pool, std::unordered_map>& models); bool RayTrace(const glm::vec3& rayOrigin, const glm::vec3& rayDir, const glm::vec3& v0, const glm::vec3& v1, const glm::vec3& v2, std::float_t& outDistance); private: bool IsPointInsideMesh_(const glm::vec3& point, const std::vector& vertices, const std::vector& indices); }; } // namespace veng