Exemple #1
0
        protected void LoadCamera(XElement xmlScene = null)
        {
            if (xmlScene != null && xmlScene.Elements("camera").Any())
            {
                XElement xmlCamera = xmlScene.Elements("camera").First();

                SceneCamera.FOV      = LoadFloat(xmlCamera, "fieldOfView");
                SceneCamera.NearClip = LoadFloat(xmlCamera, "nearClip");
                SceneCamera.FarClip  = LoadFloat(xmlCamera, "farClip");

                Vector Target   = LoadXYZFloat(xmlCamera.Elements("target").First());
                Vector Position = LoadXYZFloat(xmlCamera.Elements("position").First());
                SceneCamera.Target = Target;
                SceneCamera.Radius = (Target - Position).Magnitude3();
                SceneCamera.Up     = LoadXYZFloat(xmlCamera.Elements("up").First());
                SceneCamera.CalculatePosition();
            }
            else
            {
                SceneCamera.FOV      = 45.0f;
                SceneCamera.NearClip = 0.1f;
                SceneCamera.FarClip  = 200.0f;
                Vector Target = new Vector();
                SceneCamera.Target = Target;
                Vector Position = new Vector(25, 0, 0);
                SceneCamera.Radius = (Target - Position).Magnitude3();
                SceneCamera.Up     = new Vector(0, 1, 0);
                SceneCamera.CalculatePosition();
            }
        }