From c05e329e41f012c16a963f26ae58dfc7cde24d5d Mon Sep 17 00:00:00 2001 From: Yoel <s73017@beuth-hochschule.de> Date: Fri, 22 Jan 2021 11:52:07 +0100 Subject: [PATCH] contains and partially contains AABB tests --- RayTracer/testing/Testing.cpp | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/RayTracer/testing/Testing.cpp b/RayTracer/testing/Testing.cpp index dfdf4e9..0af2b27 100644 --- a/RayTracer/testing/Testing.cpp +++ b/RayTracer/testing/Testing.cpp @@ -358,6 +358,19 @@ void axisalignedboundingbox_test() { infbb.contains(util::Vec3(std::numeric_limits<float>::infinity()))); assert(infbb.contains(util::Vec3(0))); + // contains bounding box + bb = util::AxisAlignedBoundingBox(util::Vec3(-1), util::Vec3(1.5)); + util::AxisAlignedBoundingBox bb2(util::Vec3(1), util::Vec3(2)); + assert(!bb.contains(bb2)); + assert(!bb2.contains(bb)); + assert(bb2.contains(bb2)); + bb = util::AxisAlignedBoundingBox(util::Vec3(-1, -1, -2), + util::Vec3(1, 1, 2)); + bb2 = util::AxisAlignedBoundingBox(util::Vec3(-10, -10, -10), + util::Vec3(2, 2, 2)); + assert(!bb.contains(bb2)); + assert(bb2.contains(bb)); + std::cout << "passed." << std::endl; } { @@ -472,6 +485,30 @@ void axisalignedboundingbox_test() { std::cout << "passed." << std::endl; } + { + // Partially contains tests + std::cout << " partially contains: "; + util::AxisAlignedBoundingBox bb(util::Vec3(-1), util::Vec3(1.5)); + util::AxisAlignedBoundingBox bb2(util::Vec3(1), util::Vec3(2)); + assert(bb.partiallyContains(bb2)); + assert(bb2.partiallyContains(bb)); + assert(bb2.partiallyContains(bb2)); + bb = util::AxisAlignedBoundingBox(util::Vec3(-1, -1, -2), + util::Vec3(1, 1, 2)); + bb2 = util::AxisAlignedBoundingBox(util::Vec3(-10, -10, -10), + util::Vec3(0, 0, 0)); + assert(bb.partiallyContains(bb2)); + assert(bb2.partiallyContains(bb)); + assert(bb2.partiallyContains(bb2)); + bb = util::AxisAlignedBoundingBox(util::Vec3(-1, -1, -2), + util::Vec3(1, 1, 2)); + bb2 = util::AxisAlignedBoundingBox(util::Vec3(-1, -2, -1), + util::Vec3(1, 2, 1)); + assert(!bb.partiallyContains(bb2)); + assert(!bb2.partiallyContains(bb)); + + std::cout << "passed." << std::endl; + } std::cout << "all util::AxisAlignedBoundingBox tests passed." << std::endl << std::endl; } -- GitLab