Files
Np_Term/include/vulkan_engine/vulkan/physics.h
2025-06-19 17:34:34 +09:00

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