updated test

This commit is contained in:
2025-11-09 15:38:38 +03:00
parent ebfdd0b70e
commit cd18b088cb
2 changed files with 26 additions and 4 deletions

View File

@@ -20,7 +20,7 @@ namespace omath::collision
} }
[[nodiscard]] [[nodiscard]]
static bool check_collision(const MeshCollider& collider_a, const MeshCollider& collider_b) static bool is_collide(const MeshCollider& collider_a, const MeshCollider& collider_b)
{ {
// Get initial support point in any direction // Get initial support point in any direction
auto support = find_support_vertex(collider_a, collider_b, {1, 0, 0}); auto support = find_support_vertex(collider_a, collider_b, {1, 0, 0});

View File

@@ -4,7 +4,7 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <omath/collision/gjk_algorithm.hpp> #include <omath/collision/gjk_algorithm.hpp>
TEST(UnitTestGjk, TestCollision) TEST(UnitTestGjk, TestCollisionTrue)
{ {
const std::vector<omath::Vector3<float>> mesh = { const std::vector<omath::Vector3<float>> mesh = {
{-1.f, -1.f, -1.f}, {-1.f, -1.f, -1.f},
@@ -18,7 +18,29 @@ TEST(UnitTestGjk, TestCollision)
}; };
const omath::collision::MeshCollider collider_a(mesh, {0.f, 0.f, 0.f}); const omath::collision::MeshCollider collider_a(mesh, {0.f, 0.f, 0.f});
const omath::collision::MeshCollider collider_b(mesh, {0.f, 3.f, 0.f}); const omath::collision::MeshCollider collider_b(mesh, {0.f, 0.5f, 0.f});
const auto result = omath::collision::GjkAlgorithm::check_collision(collider_a, collider_b); const auto result = omath::collision::GjkAlgorithm::is_collide(collider_a, collider_b);
EXPECT_TRUE(result);
}
TEST(UnitTestGjk, TestCollisionFalse)
{
const std::vector<omath::Vector3<float>> mesh = {
{-1.f, -1.f, -1.f},
{-1.f, -1.f, 1.f},
{-1.f, 1.f, -1.f},
{-1.f, 1.f, 1.f},
{ 1.f, 1.f, 1.f}, // x = +1 vertices (put {1,1,1} first in case your support breaks ties by first-hit)
{ 1.f, 1.f, -1.f},
{ 1.f, -1.f, 1.f},
{ 1.f, -1.f, -1.f}
};
const omath::collision::MeshCollider collider_a(mesh, {0.f, 0.f, 0.f});
const omath::collision::MeshCollider collider_b(mesh, {0.f, 4.1f, 0.f});
const auto result = omath::collision::GjkAlgorithm::is_collide(collider_a, collider_b);
EXPECT_FALSE(result);
} }