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(); } }