public void TestIntersectTranslatedShapeRay() { var shape = new TestAShape { Transform = Matrix4.Translation(5, 0, 0) }; var ray = new Ray(Tuple.Point(0, 0, -5), Tuple.Vector(0, 0, 1)); shape.Intersect(ray); Assert.AreEqual(Tuple.Point(-5, 0, -5), shape.SavedRay.Origin); Assert.AreEqual(Tuple.Vector(0, 0, 1), shape.SavedRay.Direction); }
public void TestIntersectScaledRay() { var shape = new TestAShape { Transform = Matrix4.Scaling(2, 2, 2) }; var ray = new Ray(Tuple.Point(0, 0, -5), Tuple.Vector(0, 0, 1)); shape.Intersect(ray); Assert.AreEqual(Tuple.Point(0, 0, -2.5), shape.SavedRay.Origin); Assert.AreEqual(Tuple.Vector(0, 0, 0.5), shape.SavedRay.Direction); }