diff --git a/RayTracer/testing/Testing.cpp b/RayTracer/testing/Testing.cpp index 4efdf562f28ea4f6a8f5c523cc17529a4361bc58..ddcca376ccfffbb2c272533955b4927e94fa835b 100644 --- a/RayTracer/testing/Testing.cpp +++ b/RayTracer/testing/Testing.cpp @@ -331,6 +331,18 @@ void axisalignedboundingbox_test() { assert(bb.contains(util::Vec3(10, 15, 20))); assert(bb.contains(util::Vec3(10, 10, 10))); + // 2-dimensional AABB contain test + util::AxisAlignedBoundingBox bb0(util::Vec3(0, 10, 10), + util::Vec3(0, 20, 20)); + assert(!bb0.contains(util::Vec3(10, 6, 13))); + assert(!bb0.contains(util::Vec3(22, 15, 13))); + assert(bb0.contains(util::Vec3(0, 10, 20))); + assert(bb0.contains(util::Vec3(0, 19, 20))); + assert(!bb0.contains(util::Vec3(0, 13, 25))); + assert(bb0.contains(util::Vec3(0, 10, 18))); + assert(!bb0.contains(util::Vec3(10, 15, 20))); + assert(bb0.contains(util::Vec3(0, 10, 10))); + // Infinity contain test util::AxisAlignedBoundingBox infbb; assert(infbb.contains(util::Vec3(1243, 1341, -3151))); @@ -400,6 +412,18 @@ void axisalignedboundingbox_test() { assert(bb.intersects(cam::Ray(util::Vec3(21, 21, 21), util::Vec3(-1, -1, -2), 0, 100, false))); + // 2-dimensional AABB intersect test + util::AxisAlignedBoundingBox bb0(util::Vec3(0, 10, 10), + util::Vec3(0, 20, 20)); + assert(bb0.intersects(cam::Ray(util::Vec3(21, 10, 11), + util::Vec3(-1, 0, 0), 0, 100, false))); + assert(bb0.intersects(cam::Ray(util::Vec3(-1, 10, 9), + util::Vec3(1, 0, 2), 0, 100, false))); + assert(!bb0.intersects(cam::Ray( + util::Vec3(0, 21, 21), util::Vec3(-1, -2, -2), 0, 100, false))); + assert(bb0.intersects(cam::Ray(util::Vec3(-1, 18, 18), + util::Vec3(1, -2, 2), 0, 100, false))); + // Infinity intersection test util::AxisAlignedBoundingBox infbb; assert(infbb.intersects(cam::Ray(