From d7ec571a7a7ffb9c35e7b32c71f549eee0bc074f Mon Sep 17 00:00:00 2001 From: Orange Date: Mon, 29 Jun 2026 10:14:03 +0300 Subject: [PATCH] patch --- source/lua/lua_collision.cpp | 12 +++++----- tests/general/unit_test_aabb.cpp | 39 +++++++++++++++++--------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/source/lua/lua_collision.cpp b/source/lua/lua_collision.cpp index 00e55d3..35f8f5d 100644 --- a/source/lua/lua_collision.cpp +++ b/source/lua/lua_collision.cpp @@ -119,11 +119,11 @@ namespace switch (axis) { case omath::primitives::UpAxis::X: - return aabb.top(); + return omath::primitives::Aabb{aabb.min, aabb.max}.top(); case omath::primitives::UpAxis::Y: - return aabb.top(); + return aabb.top(); case omath::primitives::UpAxis::Z: - return aabb.top(); + return omath::primitives::Aabb{aabb.min, aabb.max}.top(); } std::unreachable(); } @@ -133,11 +133,11 @@ namespace switch (axis) { case omath::primitives::UpAxis::X: - return aabb.bottom(); + return omath::primitives::Aabb{aabb.min, aabb.max}.bottom(); case omath::primitives::UpAxis::Y: - return aabb.bottom(); + return aabb.bottom(); case omath::primitives::UpAxis::Z: - return aabb.bottom(); + return omath::primitives::Aabb{aabb.min, aabb.max}.bottom(); } std::unreachable(); } diff --git a/tests/general/unit_test_aabb.cpp b/tests/general/unit_test_aabb.cpp index d7188ef..65a11fe 100644 --- a/tests/general/unit_test_aabb.cpp +++ b/tests/general/unit_test_aabb.cpp @@ -4,7 +4,9 @@ #include #include "omath/3d_primitives/aabb.hpp" +using UpAxis = omath::primitives::UpAxis; using AABB = omath::primitives::Aabb; +using AABBZ = omath::primitives::Aabb; using Vec3 = omath::Vector3; // --- center() --- @@ -65,14 +67,12 @@ TEST(AabbTests, ExtentsOfDegenerateBox) EXPECT_FLOAT_EQ(e.z, 0.f); } -using UpAxis = omath::primitives::UpAxis; - // --- top() --- TEST(AabbTests, TopYUpSymmetricBox) { constexpr AABB box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; - constexpr auto t = box.top(); + constexpr auto t = box.top(); EXPECT_FLOAT_EQ(t.x, 0.f); EXPECT_FLOAT_EQ(t.y, 2.f); EXPECT_FLOAT_EQ(t.z, 0.f); @@ -81,7 +81,7 @@ TEST(AabbTests, TopYUpSymmetricBox) TEST(AabbTests, TopYUpOffsetBox) { constexpr AABB box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; - constexpr auto t = box.top(); + constexpr auto t = box.top(); EXPECT_FLOAT_EQ(t.x, 2.f); EXPECT_FLOAT_EQ(t.y, 10.f); EXPECT_FLOAT_EQ(t.z, 4.f); @@ -89,8 +89,8 @@ TEST(AabbTests, TopYUpOffsetBox) TEST(AabbTests, TopZUpSymmetricBox) { - constexpr AABB box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; - constexpr auto t = box.top(); + constexpr AABBZ box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; + constexpr auto t = box.top(); EXPECT_FLOAT_EQ(t.x, 0.f); EXPECT_FLOAT_EQ(t.y, 0.f); EXPECT_FLOAT_EQ(t.z, 3.f); @@ -98,8 +98,8 @@ TEST(AabbTests, TopZUpSymmetricBox) TEST(AabbTests, TopZUpOffsetBox) { - constexpr AABB box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; - constexpr auto t = box.top(); + constexpr AABBZ box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; + constexpr auto t = box.top(); EXPECT_FLOAT_EQ(t.x, 2.f); EXPECT_FLOAT_EQ(t.y, 7.f); EXPECT_FLOAT_EQ(t.z, 6.f); @@ -108,7 +108,8 @@ TEST(AabbTests, TopZUpOffsetBox) TEST(AabbTests, TopDefaultIsYUp) { constexpr AABB box{{0.f, 0.f, 0.f}, {2.f, 4.f, 6.f}}; - EXPECT_EQ(box.top(), box.top()); + EXPECT_EQ(AABB::get_up_axis(), UpAxis::Y); + EXPECT_FLOAT_EQ(box.top().y, 4.f); } // --- bottom() --- @@ -116,7 +117,7 @@ TEST(AabbTests, TopDefaultIsYUp) TEST(AabbTests, BottomYUpSymmetricBox) { constexpr AABB box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; - constexpr auto b = box.bottom(); + constexpr auto b = box.bottom(); EXPECT_FLOAT_EQ(b.x, 0.f); EXPECT_FLOAT_EQ(b.y, -2.f); EXPECT_FLOAT_EQ(b.z, 0.f); @@ -125,7 +126,7 @@ TEST(AabbTests, BottomYUpSymmetricBox) TEST(AabbTests, BottomYUpOffsetBox) { constexpr AABB box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; - constexpr auto b = box.bottom(); + constexpr auto b = box.bottom(); EXPECT_FLOAT_EQ(b.x, 2.f); EXPECT_FLOAT_EQ(b.y, 4.f); EXPECT_FLOAT_EQ(b.z, 4.f); @@ -133,8 +134,8 @@ TEST(AabbTests, BottomYUpOffsetBox) TEST(AabbTests, BottomZUpSymmetricBox) { - constexpr AABB box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; - constexpr auto b = box.bottom(); + constexpr AABBZ box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; + constexpr auto b = box.bottom(); EXPECT_FLOAT_EQ(b.x, 0.f); EXPECT_FLOAT_EQ(b.y, 0.f); EXPECT_FLOAT_EQ(b.z, -3.f); @@ -142,8 +143,8 @@ TEST(AabbTests, BottomZUpSymmetricBox) TEST(AabbTests, BottomZUpOffsetBox) { - constexpr AABB box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; - constexpr auto b = box.bottom(); + constexpr AABBZ box{{1.f, 4.f, 2.f}, {3.f, 10.f, 6.f}}; + constexpr auto b = box.bottom(); EXPECT_FLOAT_EQ(b.x, 2.f); EXPECT_FLOAT_EQ(b.y, 7.f); EXPECT_FLOAT_EQ(b.z, 2.f); @@ -152,14 +153,16 @@ TEST(AabbTests, BottomZUpOffsetBox) TEST(AabbTests, BottomDefaultIsYUp) { constexpr AABB box{{0.f, 0.f, 0.f}, {2.f, 4.f, 6.f}}; - EXPECT_EQ(box.bottom(), box.bottom()); + EXPECT_EQ(AABB::get_up_axis(), UpAxis::Y); + EXPECT_FLOAT_EQ(box.bottom().y, 0.f); } TEST(AabbTests, TopAndBottomAreSymmetric) { constexpr AABB box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; - EXPECT_FLOAT_EQ(box.top().y, -box.bottom().y); - EXPECT_FLOAT_EQ(box.top().z, -box.bottom().z); + constexpr AABBZ z_up_box{{-1.f, -2.f, -3.f}, {1.f, 2.f, 3.f}}; + EXPECT_FLOAT_EQ(box.top().y, -box.bottom().y); + EXPECT_FLOAT_EQ(z_up_box.top().z, -z_up_box.bottom().z); } // --- vertices() ---