private static void ParseVertexLineNode(XElement parent, out Motor.VertexLibrary vertices, out ObservableCollection <Motor.Line> lines) { vertices = new Motor.VertexLibrary(); foreach (XElement n in parent.XPathSelectElements("Vertices/Vertex")) { double[] position = ((string)n.Element("Position")).Split(',').Select(double.Parse).ToArray(); vertices.Add((int)n.Element("Id"), new Motor.Vertex(position[0], position[1])); } lines = new ObservableCollection <Motor.Line>(parent.XPathSelectElements("Lines/Line").Select(n => new Motor.Line((int)n.Element("LeftID"), (int)n.Element("RightID")))); }
private static void WriteVertexLineNode(XElement parent, Motor.VertexLibrary vertices, ObservableCollection <Motor.Line> lines) { parent.Add(new XElement("Vertices", vertices.Select(vertex => new XElement("Vertex", new XElement("Id", vertex.Key), new XElement("Position", $"{vertex.Value.X}, {vertex.Value.Y}") )) )); parent.Add(new XElement("Lines", lines.Select(line => new XElement("Line", new XElement("LeftID", line.LeftID), new XElement("RightID", line.RightID) )) )); }