Files
Np_Term/Client/include/vulkan_engine/vulkan/physics.h
2025-05-31 03:19:58 +09:00

22 lines
696 B
C++

#pragma once
#include "vulkan_engine/asset/object/model.h"
#include "vulkan_engine/vulkan/vertex.h"
#include "utils/thread_pool.h"
namespace veng {
class Physics {
public:
void invokeOnColisionEvent(gsl::not_null<utils::ThreadPool *> thread_pool, gsl::span<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