def test_ray_misses_p2_p3_edge(self): t = Triangle(Point(0, 1, 0), Point(-1, 0, 0), Point(1, 0, 0)) r = Ray(Point(0, -1, -2), Vector(0, 0, 1)) xs = t.local_intersect(r) self.assertEqual(len(xs), 0)
def test_ray_strikes_Triangle(self): t = Triangle(Point(0, 1, 0), Point(-1, 0, 0), Point(1, 0, 0)) r = Ray(Point(0, 0.5, -2), Vector(0, 0, 1)) xs = t.local_intersect(r) self.assertEqual(len(xs), 1) self.assertEqual(xs[0].t, 2)
def test_intersect_ray_parallel_Triangle(self): t = Triangle(Point(0, 1, 0), Point(-1, 0, 0), Point(1, 0, 0)) r = Ray(Point(0, -1, -2), Vector(0, 1, 0)) xs = t.local_intersect(r) self.assertEqual(len(xs), 0)