コード例 #1
0
 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();
 }
コード例 #2
0
        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();
        }