Commit 055758d2 authored by Libor Moravčík's avatar Libor Moravčík
Browse files

Using NarrowDetector::Algorithm instead of RayCastAlgorithm

parent f194a564
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -56,11 +56,11 @@ struct CollisionSystem final : com::System
	PotentialCollisions broadphase_collisions(com::Folder *world) const;

	bool raycast(com::Folder *world, geometry::Ray const &ray, RayCastResult &result,
		     RayCastAlgorithm algorithm = RayCastAlgorithm::VCLIP,
		     NarrowDetector::Algorithm algorithm = NarrowDetector::Algorithm::VCLIP,
		     std::unordered_set<std::size_t> layers = {});
		     
	bool raycast(const geometry::Ray &ray, ConvexHullCollider *collider, RayCastResult &result,
		     RayCastAlgorithm algorithm = RayCastAlgorithm::VCLIP) const;
		     NarrowDetector::Algorithm algorithm =NarrowDetector::Algorithm::VCLIP) const;

	bool distance_query(com::Folder *world, Collider *collider_a, Collider *collider_b,
			    geometry::ClosestPoints &result);
+0 −9
Original line number Diff line number Diff line
@@ -12,15 +12,6 @@ namespace phx::coll
struct Collider;
struct ConvexHullCollider;

enum class RayCastAlgorithm
{
	GJK = 0,
	VCLIP = 1,
	BRUTE = 2
};

static const std::string RayCastAlgorithmNames[] = {"GJK", "VClip", "Brute"};

struct RayCastResult
{
	struct Hit
+3 −2
Original line number Diff line number Diff line
#include "phx/coll/narrow/narrow_detector.hpp"
#include <phx/coll/collision_system.hpp>
#include <ranges>

@@ -293,7 +294,7 @@ bool CollisionSystem::distance_query(Collider *collider_a, Collider *collider_b,
}

bool CollisionSystem::raycast(com::Folder *world, geometry::Ray const &ray, RayCastResult &result,
			      RayCastAlgorithm algorithm,
			      NarrowDetector::Algorithm algorithm,
			      std::unordered_set<std::size_t> layers)
{
	if (m_worlds.contains(world) == false)
@@ -357,7 +358,7 @@ bool CollisionSystem::raycast(com::Folder *world, geometry::Ray const &ray, RayC
}

bool CollisionSystem::raycast(const geometry::Ray &ray, ConvexHullCollider *collider,
			      RayCastResult &result, RayCastAlgorithm algorithm) const
			      RayCastResult &result, NarrowDetector::Algorithm algorithm) const
{
	return m_narrow_detectors[static_cast<int>(algorithm)]->raycast(ray, collider, result);
}