public void IntersectingRayParallelToTriangle() { var p1 = pt.Point(0, 1, 0); var p2 = pt.Point(-1, 0, 0); var p3 = pt.Point(1, 0, 0); var t = new shape.Triangle(p1, p2, p3); var r = new Ray(pt.Point(0, -1, -2), pt.Vector(0, 1, 0)); var xs = t.Intersect(r); Assert.Empty(xs); }
public void RayMissesP2P3Edge() { var p1 = pt.Point(0, 1, 0); var p2 = pt.Point(-1, 0, 0); var p3 = pt.Point(1, 0, 0); var t = new shape.Triangle(p1, p2, p3); var r = new Ray(pt.Point(0, -1, -2), pt.Vector(0, 0, 1)); var xs = t.Intersect(r); Assert.Empty(xs); }
public void RayStrikesTriangle() { var p1 = pt.Point(0, 1, 0); var p2 = pt.Point(-1, 0, 0); var p3 = pt.Point(1, 0, 0); var t = new shape.Triangle(p1, p2, p3); var r = new Ray(pt.Point(0, 0.5, -2), pt.Vector(0, 0, 1)); var xs = t.Intersect(r); Assert.Single(xs); Assert.Equal(2, xs[0].T); }