24 lines
747 B
C++
24 lines
747 B
C++
#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:
|
|
void invokeOnColisionEvent(
|
|
gsl::not_null<utils::ThreadPool*> thread_pool,
|
|
std::unordered_map<std::string, std::shared_ptr<Model>>& 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<veng::Vertex>& vertices,
|
|
const std::vector<std::uint32_t>& indices);
|
|
};
|
|
} // namespace veng
|