Skip to content

Commit

Permalink
[Core] Fix AABB.encloses failing on shared upper bound
Browse files Browse the repository at this point in the history
This differs from `Rect2(i)` and was fixed for those classes in the past
  • Loading branch information
AThousandShips committed Jan 12, 2024
1 parent 26b1fd0 commit b4191bf
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
6 changes: 3 additions & 3 deletions core/math/aabb.h
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,11 @@ inline bool AABB::encloses(const AABB &p_aabb) const {

return (
(src_min.x <= dst_min.x) &&
(src_max.x > dst_max.x) &&
(src_max.x >= dst_max.x) &&
(src_min.y <= dst_min.y) &&
(src_max.y > dst_max.y) &&
(src_max.y >= dst_max.y) &&
(src_min.z <= dst_min.z) &&
(src_max.z > dst_max.z));
(src_max.z >= dst_max.z));
}

Vector3 AABB::get_support(const Vector3 &p_normal) const {
Expand Down
9 changes: 9 additions & 0 deletions tests/core/math/test_aabb.h
Original file line number Diff line number Diff line change
Expand Up @@ -228,11 +228,20 @@ TEST_CASE("[AABB] Merging") {
TEST_CASE("[AABB] Encloses") {
const AABB aabb_big = AABB(Vector3(-1.5, 2, -2.5), Vector3(4, 5, 6));

CHECK_MESSAGE(
aabb_big.encloses(aabb_big),
"encloses() with itself should return the expected result.");

AABB aabb_small = AABB(Vector3(-1.5, 2, -2.5), Vector3(1, 1, 1));
CHECK_MESSAGE(
aabb_big.encloses(aabb_small),
"encloses() with fully contained AABB (touching the edge) should return the expected result.");

aabb_small = AABB(Vector3(1.5, 6, 2.5), Vector3(1, 1, 1));
CHECK_MESSAGE(
aabb_big.encloses(aabb_small),
"encloses() with fully contained AABB (touching the edge) should return the expected result.");

aabb_small = AABB(Vector3(0.5, 1.5, -2), Vector3(1, 1, 1));
CHECK_MESSAGE(
!aabb_big.encloses(aabb_small),
Expand Down

0 comments on commit b4191bf

Please sign in to comment.