diff --git a/src/Tests/CollisionTest.cpp b/src/Tests/CollisionTest.cpp index 9f400330..78d5bdb7 100644 --- a/src/Tests/CollisionTest.cpp +++ b/src/Tests/CollisionTest.cpp @@ -205,9 +205,9 @@ BOOST_AUTO_TEST_CASE(octTest) { glm::vec3 mini = glm::vec3(-1, -1, -1); glm::vec3 maxi = glm::vec3(1, 1, 1); - Octree tree(AABB(mini, maxi), 2); + Octree tree(AABB(mini, maxi), 2); tree.AddDynamicObject(AABB(mini, -0.9f*maxi)); - Octree::Output data; + OctSpace::Output data; glm::vec3 origin = 3.0f * mini; bool rayIntersected = tree.RayCollides(Ray(origin , mini - origin), data); BOOST_CHECK(rayIntersected); diff --git a/src/Tests/OctTreeTest.cpp b/src/Tests/OctTreeTest.cpp index 3a130354..2fdfe681 100644 --- a/src/Tests/OctTreeTest.cpp +++ b/src/Tests/OctTreeTest.cpp @@ -13,12 +13,12 @@ BOOST_AUTO_TEST_CASE(octSameRegionTest) { glm::vec3 mini = glm::vec3(-1, -1, -1); glm::vec3 maxi = glm::vec3(1, 1, 1); - Octree tree(AABB(mini, maxi), 2); + Octree tree(AABB(mini, maxi), 2); AABB firstQuadrant(mini, 0.8f*mini); tree.AddStaticObject(firstQuadrant); AABB testBox(0.9f*mini, 0.8f*mini); std::vector region; - tree.BoxesInSameRegion(testBox, region); + tree.ObjectsInSameRegion(testBox, region); BOOST_REQUIRE(region.size() == 1); AABB& box = region[0]; BOOST_CHECK_CLOSE_FRACTION(box.Origin().x, firstQuadrant.Origin().x, 0.00001f); @@ -40,7 +40,7 @@ const int NUM_FUNCTION_LOOPS = 25; const int TESTS = 0; //10 template -void RegionTest(Tree& tree) +void RegionTestOld(Tree& tree) { AABB aabb; aabb.CreateFromCenter(glm::vec3(rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS), @@ -50,9 +50,19 @@ void RegionTest(Tree& tree) } template +void RegionTest(Tree& tree) +{ + AABB aabb; + aabb.CreateFromCenter(glm::vec3(rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS), + glm::vec3(rand() % MAXSIZE, rand() % MAXSIZE, rand() % MAXSIZE)); + std::vector outVec; + tree.ObjectsInSameRegion(aabb, outVec); +} + +template void RayTest(Tree& tree) { - Tree::Output data; + Output data; glm::vec3 rayStart = glm::vec3(rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS); glm::vec3 rayEnd = glm::vec3(rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS, rand() % LEVEL_BOUNDS); tree.RayCollides({ rayStart , glm::normalize(rayEnd - rayStart) }, data); @@ -111,13 +121,13 @@ void TestLoop(TestFunction xTest) BOOST_AUTO_TEST_CASE(octRegionPerfTestWithDuplicates) { - TestLoop(RegionTest); + TestLoop(RegionTestOld); BOOST_CHECK(true); } BOOST_AUTO_TEST_CASE(octRegionPerfTestNoDuplicates) { - TestLoop(RegionTest); + TestLoop>(RegionTest>); BOOST_CHECK(true); } @@ -129,19 +139,19 @@ BOOST_AUTO_TEST_CASE(octBoxPerfTestWithDuplicates) BOOST_AUTO_TEST_CASE(octBoxPerfTestNoDuplicates) { - TestLoop(BoxTest); + TestLoop>(BoxTest>); BOOST_CHECK(true); } BOOST_AUTO_TEST_CASE(octRayPerfTestWithDuplicates) { - TestLoop(RayTest); + TestLoop(RayTest); BOOST_CHECK(true); } BOOST_AUTO_TEST_CASE(octRayPerfTestNoDuplicates) { - TestLoop(RayTest); + TestLoop>(RayTest, OctSpace::Output>); BOOST_CHECK(true); } @@ -153,7 +163,7 @@ BOOST_AUTO_TEST_CASE(octNopPerfTestWithDuplicates) BOOST_AUTO_TEST_CASE(octNopPerfTestNoDuplicates) { - TestLoop(NopTest); + TestLoop>(NopTest>); BOOST_CHECK(true); }