public void ConstructingRayThroughCenterCanvas() { var c = new RTF.Camera(201, 101, Math.PI / 2); var r = c.RayForPixel(100, 50); Assert.Equal(RTF.PointType.Point(0, 0, 0), r.Origin); CustomAssert.Equal(RTF.PointType.Vector(0, 0, -1), r.Direction, 5); }
public void ConstructingRayThroughCornerCanvas() { var c = new RTF.Camera(201, 101, Math.PI / 2); var r = c.RayForPixel(0, 0); Assert.Equal(RTF.PointType.Point(0, 0, 0), r.Origin); CustomAssert.Equal( RTF.PointType.Vector(0.66519, 0.33259, -0.66851), r.Direction, 5); }
public void ConstructingRayWhenCameraTransformed() { var c = new RTF.Camera(201, 101, Math.PI / 2) { Transform = RTH.Transformations.RotationY(Math.PI / 4) * RTH.Transformations.Translation(0, -2, 5) }; var r = c.RayForPixel(100, 50); Assert.Equal(RTF.PointType.Point(0, 2, -5), r.Origin); CustomAssert.Equal( RTF.PointType.Vector(Math.Sqrt(2) / 2, 0, -Math.Sqrt(2) / 2), r.Direction, 5); }