13 Dicembre 2002
Costruzione di Interfacce - Paolo Cignoni
23
Nodo Light: Read e Write
vvoid CSGLight::XMLWrite(FILE *fp)
v{
v fprintf(fp,"<CSGLight\n");
v fprintf(fp,"DC0= \"%f\" DC1= \"%f\" DC2= \"%f\" DC3= \"%f\" \n",
DiffuseColor[0] ,DiffuseColor[1],DiffuseColor[2],DiffuseColor[3]); v fprintf(fp,"AC0= \"%f\" AC1= \"%f\" AC2= \"%f\" AC3= \"%f\" \n",
AmbientColor[0] ,AmbientColor[1],AmbientColor[2],AmbientColor[3]); v fprintf(fp,"SC0= \"%f\" SC1= \"%f\" SC2= \"%f\" SC3= \"%f\" \n",
SpecularColor[0],SpecularColor[1],SpecularColor[2],SpecularColor[3]); v fprintf(fp,"PT0= \"%f\" PT1= \"%f\" PT2= \"%f\" PT3= \"%f\" \n",
Position[0],     Position[1],Position[2],Position[3]);
v fprintf(fp,"/>\n");
v}
vvoid CSGLight::XMLRead(Xml &xml, CSG *Base)
v{
v  assert(xml.id == "CSGLight");
v  DiffuseColor[0]  = (float)atof(xml["DC0"].c_str()); DiffuseColor[1]  = (float)atof(xml["DC1"].c_str());
v  AmbientColor[0]  = (float)atof(xml["AC0"].c_str()); AmbientColor[1]  = (float)atof(xml["AC1"].c_str());
v  SpecularColor[0] = (float)atof(xml["SC0"].c_str()); SpecularColor[1] = (float)atof(xml["SC1"].c_str());
v  Position[0]      = (float)atof(xml["PT0"].c_str()); Position[1]      = (float)atof(xml["PT1"].c_str());
v
v  DiffuseColor[2]  = (float)atof(xml["DC2"].c_str());DiffuseColor[3]  = (float)atof(xml["DC3"].c_str());
v  AmbientColor[2]  = (float)atof(xml["AC2"].c_str());AmbientColor[3]  = (float)atof(xml["AC3"].c_str());
v  SpecularColor[2] = (float)atof(xml["SC2"].c_str());SpecularColor[3] = (float)atof(xml["SC3"].c_str());
v  Position[2]      = (float)atof(xml["PT2"].c_str());Position[3]      = (float)atof(xml["PT3"].c_str());
v}
v