public void Save(string path)
{
XmlWriterSettings set = new XmlWriterSettings();
set.Indent = true;
XmlWriter w = XmlWriter.Create(path, set);
w.WriteStartDocument();
w.WriteStartElement("heightmap");
w.WriteAttributeString("MinX", Min.X.ToString(Constants.DecimalParseFormat));
w.WriteAttributeString("MinY", Min.Y.ToString(Constants.DecimalParseFormat));
w.WriteAttributeString("MaxX", Max.X.ToString(Constants.DecimalParseFormat));
w.WriteAttributeString("MaxY", Max.Y.ToString(Constants.DecimalParseFormat));
w.WriteAttributeString("SizeX", SizeX.ToString(Constants.DecimalParseFormat));
w.WriteAttributeString("SizeY", SizeY.ToString(Constants.DecimalParseFormat));
for (int x = 0; x < SizeX; x++)
{
for (int y = 0; y < SizeY; y++)
{
if (!Points[x, y].HasValue)
continue;
w.WriteStartElement("point");
w.WriteAttributeString("X", x.ToString());
w.WriteAttributeString("Y", y.ToString());
w.WriteString(Points[x, y].Value.ToString(Constants.DecimalParseFormat));
w.WriteEndElement();
}
}
w.WriteEndElement();
w.Close();
}