/// <summary> /// Load the scene from a file /// </summary> public void LoadScene() { var loadDialog = new OpenFileDialog(); loadDialog.Filter = "Outside Simulator Scene (*.oss)|*.oss"; var dr = loadDialog.ShowDialog(); if (dr != DialogResult.OK) { MessageBox.Show("LoadScene aborted", "Outside Simulator"); return; } var sr = new System.IO.StreamReader(loadDialog.FileName); var xe = XElement.Parse(sr.ReadToEnd()); if (xe.Name != "OutsideSimulatorScene") { MessageBox.Show("LoadScene failed - file is not a valid OutsideSimulatorScene", "Outside Simulator"); return; } var sg = SceneGraph.Deserialize( (xe.Nodes().First((x) => (x as XElement).Name == "SceneGraph") as XElement).Nodes().First((x) => (x as XElement).Name == "SceneGraph").ToString() ); // I will add this back in... Maybe. //var cs = CommandStack.Deserialize( // (xe.Nodes().First((x) => (x as XElement).Name == "CommandStack") as XElement).Nodes().First((x) => (x as XElement).Name == "CommandStack").ToString() //); SceneGraph.Children.Remove("Scene"); SceneGraph.AttachChild("Scene", sg); //CommandStack = cs; CommandStack = new CommandStack(); }