Exemplo n.º 1
0
        public void AllRaysDirectionIsSameAsCamerasFrontDirection()
        {
            Camera orthographic = new OrthographicCamera(Vector3.Zero);

            orthographic.Rotate(0, (float)Math.PI / 2, 0);
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    Ray ray = orthographic.GetRay((float)i / 10, (float)j / 10);
                    VectorsShouldBeApproximately(ray.Direction, new Vector3(1, 0, 0), Ray.Epsilon);
                }
            }
        }
Exemplo n.º 2
0
        public void OrthographicCamera_GetRay_center_gives_camera_position()
        {
            var position = new Point(10.0f, 20.0f, -100.0f);
            var up = new Vector(0.0f, 1.0f, 0.0f);
            var right = new Vector(1.0f, 0.0f, 0.0f);
            var width = 10u;
            var height = 10u;
            var camera = new OrthographicCamera(position, up, right, width, height);

            var ray = camera.GetRay(5.0f, 5.0f);

            Assert.AreEqual(position, ray.Start);
            Assert.AreEqual(new Vector(0.0f, 0.0f, 1.0f), ray.Direction);
        }
Exemplo n.º 3
0
        public void OrthographicCamera_GetRay_throws_given_too_large_x()
        {
            var position = new Point(10.0f, 20.0f, -100.0f);
            var up = new Vector(0.0f, 1.0f, 0.0f);
            var right = new Vector(1.0f, 0.0f, 0.0f);
            var width = 10u;
            var height = 10u;
            var camera = new OrthographicCamera(position, up, right, width, height);

            camera.GetRay(10.0f, 5.0f);
        }
Exemplo n.º 4
0
        public void OrthographicCamera_GetRay_zeros_give_bottom_left_corner()
        {
            var position = new Point(10.0f, 20.0f, -100.0f);
            var up = new Vector(0.0f, 1.0f, 0.0f);
            var right = new Vector(1.0f, 0.0f, 0.0f);
            var width = 10u;
            var height = 10u;
            var camera = new OrthographicCamera(position, up, right, width, height);

            var ray = camera.GetRay(0.0f, 0.0f);

            Assert.AreEqual(new Point(5.0f, 15.0f, -100.0f), ray.Start);
            Assert.AreEqual(new Vector(0.0f, 0.0f, 1.0f), ray.Direction);
        }