diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-12-02 21:10:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-02 21:10:53 +0100 |
commit | 3f1a8e2f7708b6a90f888789897e959471bb42b7 (patch) | |
tree | 0eccd2dfc77560c87bc15ffb6a1ee6ba9eca876d | |
parent | 892a5a72cd9b25dc660671b9f4244fd842884b9f (diff) | |
parent | 2017590ef6ebb27a6c3ae0d9d7880a0fa6dd9b3c (diff) |
Merge pull request #55545 from akien-mga/doc-aabb-has_point
AABB: Improve docs and test for `has_point`
-rw-r--r-- | doc/classes/AABB.xml | 5 | ||||
-rw-r--r-- | tests/core/math/test_aabb.h | 21 |
2 files changed, 20 insertions, 6 deletions
diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml index ac45682feb..bdf8a78dc3 100644 --- a/doc/classes/AABB.xml +++ b/doc/classes/AABB.xml @@ -158,14 +158,15 @@ <return type="bool" /> <argument index="0" name="point" type="Vector3" /> <description> - Returns [code]true[/code] if the [AABB] contains a point. + Returns [code]true[/code] if the [AABB] contains a point. Points on the faces of the AABB are considered included, though float-point precision errors may impact the accuracy of such checks. + [b]Note:[/b] This method is not reliable for [AABB] with a [i]negative size[/i]. Use [method abs] to get a positive sized equivalent [AABB] to check for contained points. </description> </method> <method name="intersection" qualifiers="const"> <return type="AABB" /> <argument index="0" name="with" type="AABB" /> <description> - Returns the intersection between two [AABB]. An empty AABB (size 0,0,0) is returned on failure. + Returns the intersection between two [AABB]. An empty AABB (size [code](0, 0, 0)[/code]) is returned on failure. </description> </method> <method name="intersects" qualifiers="const"> diff --git a/tests/core/math/test_aabb.h b/tests/core/math/test_aabb.h index b838bed171..f5076ce1ed 100644 --- a/tests/core/math/test_aabb.h +++ b/tests/core/math/test_aabb.h @@ -349,14 +349,27 @@ TEST_CASE("[AABB] Has point") { aabb.has_point(Vector3(2, 3, 0)), "has_point() with contained point should return the expected value."); CHECK_MESSAGE( + !aabb.has_point(Vector3(-20, 0, 0)), + "has_point() with non-contained point should return the expected value."); + + CHECK_MESSAGE( aabb.has_point(Vector3(-1.5, 3, 0)), - "has_point() with contained point on negative edge should return the expected value."); + "has_point() with positive size should include point on near face (X axis)."); CHECK_MESSAGE( aabb.has_point(Vector3(2.5, 3, 0)), - "has_point() with contained point on positive edge should return the expected value."); + "has_point() with positive size should include point on far face (X axis)."); CHECK_MESSAGE( - !aabb.has_point(Vector3(-20, 0, 0)), - "has_point() with non-contained point should return the expected value."); + aabb.has_point(Vector3(0, 2, 0)), + "has_point() with positive size should include point on near face (Y axis)."); + CHECK_MESSAGE( + aabb.has_point(Vector3(0, 7, 0)), + "has_point() with positive size should include point on far face (Y axis)."); + CHECK_MESSAGE( + aabb.has_point(Vector3(0, 3, -2.5)), + "has_point() with positive size should include point on near face (Z axis)."); + CHECK_MESSAGE( + aabb.has_point(Vector3(0, 3, 3.5)), + "has_point() with positive size should include point on far face (Z axis)."); } TEST_CASE("[AABB] Expanding") { |