Program Listing for File collision_query.hpp

Return to documentation for file (inexor/vulkan-renderer/world/collision_query.hpp)

#pragma once

#include "inexor/vulkan-renderer/world/collision.hpp"

#include <glm/vec3.hpp>

#include <optional>

// Forward declaration
namespace inexor::vulkan_renderer::world {
class Cube;
} // namespace inexor::vulkan_renderer::world

namespace inexor::vulkan_renderer::world {

// TODO: Implement PointCubeCollision

[[nodiscard]] bool ray_box_collision(std::array<glm::vec3, 2> &box_bounds, glm::vec3 &pos, glm::vec3 &dir);

[[nodiscard]] std::optional<RayCubeCollision<Cube>>
ray_cube_collision_check(const Cube &cube, glm::vec3 pos, glm::vec3 dir,
                         std::optional<std::uint32_t> max_depth = std::nullopt);

} // namespace inexor::vulkan_renderer::world