Пример #1
0
        public void LookDownTest()
        {
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(0, 10, 0);

            cam.LookAt(eye, new Vector3());
            double v = cam.Elevation;
            double t = -Math.PI / 2;

            Assert.IsTrue(v < t + 0.11f, "Looking down elevation: " + v + " != " + t);
        }
Пример #2
0
        public void LookUpTest()
        {
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(0, -10, 0);

            cam.LookAt(eye, eye * 0.8f);
            double v = cam.Elevation;
            double t = Math.PI / 2;

            Assert.IsTrue(v > t - 0.11f, "Looking up elevation: " + v + " != " + t);
        }
Пример #3
0
        public void IncreaseAzimuth()
        {
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(-1, 0, 0);

            cam.LookAt(eye, new Vector3(0, 0, 0));
            Assert.AreEqual(0, cam.Azimuth, 0.01);

            cam.Azimuth += Math.PI / 2;
            VectorAssertions.AreEqual(new Vector3(-1, 0, 1), cam.Target, 0.01);
            Assert.AreEqual(Math.PI / 2, cam.Azimuth, 0.01);
        }
Пример #4
0
        public void MoveEast()
        {
            // start facing north, then move east.
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(0, 0, -4);

            cam.LookAt(eye, new Vector3(4, 0, -4));
            Assert.AreEqual(0, cam.Azimuth);
            cam.MoveSideways(4);
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Eye, 0.01);
            Assert.AreEqual(0, cam.Azimuth, 0.01);
        }
Пример #5
0
        public void MoveNorth()
        {
            // start facing north, then move forwards.
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(-4, 0, 0);

            cam.LookAt(eye, new Vector3());
            Assert.AreEqual(0, cam.Azimuth);
            cam.MoveForwards(4);
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Eye, 0.01);
            Assert.AreEqual(0, cam.Azimuth, 0.01);
        }
Пример #6
0
        public void LookDiagonal()
        {
            AzElCamera cam = new AzElCamera();
            float      d   = (float)(1 / Math.Sqrt(3));
            Vector3    eye = new Vector3(-d, d, -d);

            cam.LookAt(eye, new Vector3());
            double v = cam.Azimuth;
            double t = Math.PI / 4;

            Assert.AreEqual(t, v, 0.01, "Looking diagonally: " + v + " != " + t);
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Target, 0.01);
        }
Пример #7
0
        public void LookEastTest()
        {
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(0, 0, -1);

            cam.LookAt(eye, new Vector3());
            double v = cam.Azimuth;
            double t = Math.PI / 2;

            Assert.AreEqual(t, v, 0.01, "Azimuth wrong");
            v = cam.Elevation;
            t = 0;
            Assert.AreEqual(t, v, 0.01, "Elevation wrong");
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Target, 0.01);
        }
Пример #8
0
        public void PrintCommonStats(double timeSinceLastRender)
        {
            double p = 0.05;

            time    += (float)timeSinceLastRender;
            interval = interval * (1 - p) + 1000 * timeSinceLastRender * p;
            double fp = timeSinceLastRender == 0 ? 1000 : 1.0 / timeSinceLastRender;

            fps = fps * (1 - p) + p * fp;
            AzElCamera cam = game.Camera as AzElCamera;

            Text = "Fps: " + fps.ToString("N1") + " Time: " + interval.ToString("N2") + "\n"
                   + "CamLoc:  " + cam.Eye.X.ToString("F2") + "," + cam.Eye.Y.ToString("F2") + "," + cam.Eye.Z.ToString("F2") + "\n"
                   + "CamAzEl: " + cam.Azimuth.ToString("F2") + ":" + cam.Elevation.ToString("F2");
        }
Пример #9
0
        public void MoveDiagonal()
        {
            // start facing northeast.
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(-4, 0, -4);

            cam.LookAt(eye, new Vector3(0, 0, 0));
            Assert.AreEqual(Math.PI / 4, cam.Azimuth, 0.01);
            // Move forwards
            cam.MoveForwards(Math.Sqrt(32));
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Eye, 0.01, "Move Forwards failed");
            Assert.AreEqual(Math.PI / 4, cam.Azimuth, 0.01);
            // Move sidways, left
            cam.MoveSideways(-Math.Sqrt(32));
            VectorAssertions.AreEqual(new Vector3(4, 0, -4), cam.Eye, 0.01, "Move Sideways failed");
            Assert.AreEqual(Math.PI / 4, cam.Azimuth, 0.01);
        }
Пример #10
0
        public void LookSouthTest()
        {
            AzElCamera cam = new AzElCamera();
            Vector3    eye = new Vector3(1, 0, 0);

            cam.LookAt(eye, new Vector3());
            double v = cam.Azimuth;

            if (v < 0)
            {
                v = v + 2 * Math.PI;
            }
            double t = Math.PI;

            Assert.AreEqual(t, v, 0.01, "Azimuth wrong");
            v = cam.Elevation;
            t = 0;
            Assert.AreEqual(t, v, 0.01, "Elevation wrong");
            VectorAssertions.AreEqual(new Vector3(0, 0, 0), cam.Target, 0.01);
        }