public void addXMLWaveLengths(Scientrace.UserLightSpectrum ls, XElement xlightspectrum)
 {
     if (xlightspectrum.Attribute("ModuloMultiplier") != null)
     {
         ls.modulo_multiplier = this.X.getXInt(xlightspectrum, "ModuloMultiplier");
     }
     //Console.WriteLine("Mod multiplier is now: "+ls.modulo_multiplier);
     if (xlightspectrum.Attribute("Tag") != null)
     {
         ls.tag = this.X.getXString(xlightspectrum.Attribute("Tag"));
     }
     foreach (XElement wlxel in xlightspectrum.Elements("Wavelength"))
     {
         double wlintens = this.X.getXDouble(wlxel, "Intensity", 1);
         if (wlintens > Scientrace.MainClass.SIGNIFICANTLY_SMALL)           //check for minimal intensity threshold
         {
             if (wlxel.Attribute("nm") == null)
             {
                 ls.addWavelength(this.X.getXDouble(wlxel, "m"), wlintens);
             }
             else
             {
                 ls.addNanometerWavelength(this.X.getXDouble(wlxel, "nm"), wlintens);
             }
         }
         else
         {
             Console.WriteLine("NOTE: " + wlxel.ToString() + " has negligible intensity of " + wlintens + " and is skipped.");
         }
     }
     ls.force_verify_mod_multip();
 }
 public void getSpectrumXMLFromXMLFile(Scientrace.UserLightSpectrum ls, string filename)
 {
     if (System.IO.File.Exists(filename))
     {
         XDocument xd = XDocument.Load(filename);
         this.addXMLWaveLengths(ls, xd.Element("Spectrum"));
     }
     else
     {
         throw new System.IO.FileNotFoundException("Spectrum filename (" + filename + ") does not exist");
     }
 }
        public Scientrace.UserLightSpectrum getUserLightSpectrum(XElement xspec)
        {
            string tag = this.X.getXString(xspec, "Tag");

            Scientrace.UserLightSpectrum retls = new Scientrace.UserLightSpectrum(1, tag);
            //Console.WriteLine("Creating user lightsource "+tag);
            if (xspec.Attribute("CSVData") != null)
            {
                Console.WriteLine("Reading from comma seperated value files not yet possible");
                //TODO: parse CSV values from this filename.
            }

            if (xspec.Attribute("XMLData") != null)
            {
                string xmldatafilename = this.X.getXString(xspec.Attribute("XMLData"));
                retls.tag = retls.tag + xmldatafilename;
                this.getSpectrumXMLFromXMLFile(retls, xmldatafilename);
            }
            this.addXMLWaveLengths(retls, xspec);
            return(retls);
        }