public static CommandStack Deserialize(string XMLString) { CommandStack tr = new CommandStack(); var xe = XElement.Parse(XMLString); if (xe.Name != "CommandStack") { return(null); } int count = int.Parse((xe.Nodes().First((x) => (x as XElement).Name == "Count") as XElement).Value); foreach (var node in xe.Nodes()) { if ((node as XElement).Name == "Count") { continue; } --count; tr.Push(UndoSerializer.Deserialize((xe.Nodes().First((x) => (x as XElement).Name == "c" + count.ToString()) as XElement).FirstNode.ToString())); } return(tr); }
private OutsideSimulatorApp(string title) : base(title) { // // Dirtyables... // ProjMatrix = new Dirtyable<SlimDX.Matrix>(() => { return SlimDX.Matrix.PerspectiveFovLH(0.25f * (float)Math.PI, AspectRatio, 0.1f, 10000.0f); }); // // Subscribers... // KeyDownSubscribers = new List<KeyDownSubscriber>(); KeyUpSubscribers = new List<KeyUpSubscriber>(); MouseDownSubscribers = new List<MouseDownSubscriber>(); MouseWheelSubscribers = new List<MouseWheelSubscriber>(); MouseMoveSubscribers = new List<MouseMoveSubscriber>(); MouseUpSubscribers = new List<MouseUpSubscriber>(); TimerTickSubscribers = new List<TimerTickSubscriber>(); CommandStack = new CommandStack(); Subscribe(CommandStack); RenderEffects = new List<RenderEffect>(); }
public static CommandStack Deserialize(string XMLString) { CommandStack tr = new CommandStack(); var xe = XElement.Parse(XMLString); if (xe.Name != "CommandStack") { return null; } int count = int.Parse((xe.Nodes().First((x) => (x as XElement).Name == "Count") as XElement).Value); foreach (var node in xe.Nodes()) { if ((node as XElement).Name == "Count") continue; --count; tr.Push(UndoSerializer.Deserialize((xe.Nodes().First((x) => (x as XElement).Name == "c" + count.ToString()) as XElement).FirstNode.ToString())); } return tr; }
/// <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(); }