public void LoadFromXML(XmlTextReader reader) { cameras.Clear(); lights.Clear(); objects.Clear(); reader.ReadStartElement("Scene"); reader.ReadStartElement("Cameras"); while(reader.IsStartElement("Camera")) { RTCamera camera = new RTCamera(); camera.ReadFromXML(reader); cameras.Add(camera); } reader.ReadEndElement(); //Cameras reader.ReadStartElement("Lights"); while (reader.IsStartElement("Light")) { reader.ReadStartElement("Light"); RTLight light = null; if (reader.IsStartElement("PointLight")) light = new RTPointLight(); light.ReadFromXML(reader); lights.Add(light); reader.ReadEndElement(); //Light } reader.ReadEndElement(); //Lights reader.ReadStartElement("Objects"); while(reader.IsStartElement("Object")) { reader.ReadStartElement("Object"); //Parse each type of object here. reader.ReadEndElement(); //Object } reader.ReadEndElement(); //Objects reader.ReadEndElement(); //Scene }