public void LoadXML(XmlReader reader) { _FractalColours.Clear(); _FractalIterations = new List <WooFractalIteration>(); while (reader.NodeType != XmlNodeType.EndElement && reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "MATERIALSELECTION") { _MaterialSelection = new MaterialSelection(); _MaterialSelection.LoadXML(reader); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "RENDEROPTIONS") { _RenderOptions = new RenderOptions(); _RenderOptions.LoadXML(reader); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "FRACTALCOLOURS") { FractalGradient fractalColour = new FractalGradient(); fractalColour.LoadXML(reader); _FractalColours.Add(fractalColour); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "KIFSFRACTAL") { KIFSIteration fractalIteration = new KIFSIteration(); fractalIteration.LoadXML(reader); _FractalIterations.Add(fractalIteration); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "BULBFRACTAL") { MandelbulbIteration fractalIteration = new MandelbulbIteration(); fractalIteration.LoadXML(reader); _FractalIterations.Add(fractalIteration); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "BOXFRACTAL") { MandelboxIteration fractalIteration = new MandelboxIteration(); fractalIteration.LoadXML(reader); _FractalIterations.Add(fractalIteration); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "KLEINIANGROUP") { KleinianGroupIteration fractalIteration = new KleinianGroupIteration(); fractalIteration.LoadXML(reader); _FractalIterations.Add(fractalIteration); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "BOXFOLD") { BoxfoldIteration fractalIteration = new BoxfoldIteration(); fractalIteration.LoadXML(reader); _FractalIterations.Add(fractalIteration); } } reader.Read(); }
private void LoadColoursFile(string name) { string filename = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\WooFractal\\Colours\\" + name + ".wcd"; if (System.IO.File.Exists(filename)) { StreamReader sr = new StreamReader(filename); string colourDescriptor = sr.ReadToEnd(); _Scene._FractalSettings._FractalColours.Clear(); using (XmlReader reader = XmlReader.Create(new StringReader(colourDescriptor))) { try { while (reader.NodeType != XmlNodeType.EndElement && reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "CONTEXT") { reader.Read(); while (reader.NodeType != XmlNodeType.EndElement && reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "FRACTALCOLOURS") { FractalGradient fractalColour = new FractalGradient(); fractalColour.LoadXML(reader); _Scene._FractalSettings._FractalColours.Add(fractalColour); } } reader.Read(); } } } catch (XmlException /*e*/) { _Scene = new Scene(); } } sr.Close(); } BuildColourList(); }