/// <summary> /// Given the numPRMpoints and the obstacleRatio, calculate an approriate maximum distance an edge can be. /// </summary> /// <returns></returns>maximumDistance /// private void createPRM() { PRMGraph = new Graph(); createPRMpoints(); createkEdges(); if (PRMGraph.AllNodes.Count > numPRMpoints) { int numberToRemove = PRMGraph.AllNodes.Count - numPRMpoints; removeExtraPoints(numberToRemove); } else if (PRMGraph.AllNodes.Count < numPRMpoints) { int numToAdd = numPRMpoints - PRMGraph.AllNodes.Count; addMorePoints(numToAdd); } }
void IXmlSerializable.ReadXml(XmlReader reader) { XmlSerializer graphSerializer = new XmlSerializer(typeof(Graph)); XmlSerializer doubleSerializer = new XmlSerializer(typeof(double)); XmlSerializer mapSerializer = new XmlSerializer(typeof(Field)); XmlSerializer vector2Serializer = new XmlSerializer(typeof(Vector2)); XmlSerializer polygonSerializer = new XmlSerializer(typeof(Polygon)); XmlSerializer intSerializer = new XmlSerializer(typeof(int)); bool wasEmpty = reader.IsEmptyElement; reader.Read(); // read root tag if (wasEmpty) { return; } while (reader.NodeType != XmlNodeType.EndElement) { if (reader.IsStartElement("PRMGraph")) { reader.ReadStartElement("PRMGraph"); PRMGraph = (Graph)graphSerializer.Deserialize(reader); reader.ReadEndElement(); } else if (reader.IsStartElement("numPRMpoints")) { reader.ReadStartElement("numPRMpoints"); numPRMpoints = (int)intSerializer.Deserialize(reader); reader.ReadEndElement(); } else if (reader.IsStartElement("PRMmap")) { reader.ReadStartElement("PRMmap"); PRMmap = (Field)mapSerializer.Deserialize(reader); reader.ReadEndElement(); } else if (reader.IsStartElement("mapPoint")) { reader.ReadStartElement("mapPoint"); mapPoint = (Vector2)vector2Serializer.Deserialize(reader); reader.ReadEndElement(); } else if (reader.IsStartElement("obstacles")) { if (reader.IsEmptyElement) { reader.ReadStartElement("obstacles"); } else { reader.ReadStartElement("obstacles"); while (reader.NodeType != System.Xml.XmlNodeType.EndElement) { reader.ReadStartElement("obstacle"); Polygon p = (Polygon)polygonSerializer.Deserialize(reader); reader.ReadEndElement(); obstacles.Add(p); } reader.ReadEndElement(); } } else if (reader.IsStartElement("maxDistance")) { reader.ReadStartElement("maxDistance"); maxDistance = (double)doubleSerializer.Deserialize(reader); reader.ReadEndElement(); } else if (reader.IsStartElement("obstacleRatio")) { reader.ReadStartElement("obstacleRatio"); obstacleRatio = (double)doubleSerializer.Deserialize(reader); reader.ReadEndElement(); } } reader.ReadEndElement(); }