Example #1
0
        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"))));
        }
Example #2
0
        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)
                                                                      ))
                                    ));
        }