Example #1
0
        /// <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();
        }