void XMLScene::processGlobals(TiXmlElement* globalsElement) { char *modeString=NULL,*shadingString=NULL,*backgrounfString=NULL; float rBackground,gBackground,bBackground,aBackground; char *faceString=NULL,*orderString=NULL; printf("Processing Global:\n"); TiXmlElement* drawingElement=globalsElement->FirstChildElement("drawing"); if (drawingElement) { modeString =(char *) drawingElement->Attribute("mode"); shadingString =(char *) drawingElement->Attribute("shading"); backgrounfString =(char *) drawingElement->Attribute("background"); if (modeString && shadingString && backgrounfString && sscanf(backgrounfString,"%f %f %f %f",&rBackground, &gBackground, &bBackground, &aBackground)==4) printf(" drawing attributes: %s %s %f %f %f %f\n", modeString, shadingString, rBackground, gBackground, bBackground, aBackground); else printf("Error parsing Drawing\n"); } else printf("drawing not found\n"); TiXmlElement* cullingElement=globalsElement->FirstChildElement("culling"); if (cullingElement) { faceString =(char *) cullingElement->Attribute("face"); orderString =(char *) cullingElement->Attribute("order"); if(faceString && orderString) { printf(" culling values: %s , %s \n", faceString, orderString); } else printf("Error parsing culling"); } else printf("culling not found\n"); TiXmlElement* lightingElement=globalsElement->FirstChildElement("lighting"); processGlobalLight(lightingElement); globalVariables= new Globals(rBackground, gBackground, bBackground, aBackground, modeString, shadingString, faceString, orderString); }
void YafFile::loadFile(char* filename) { TiXmlDocument* doc=new TiXmlDocument( filename ); bool loadOkay = doc->LoadFile(); if ( !loadOkay ) { printf( "Could not load file '%s'. Error='%s'. Exiting.\n", filename, doc->ErrorDesc() ); exit( 1 ); } TiXmlElement* yafElement= doc->FirstChildElement( "yaf" ); if (yafElement == NULL) { printf("Main yaf block element not found! Exiting!\n"); exit(1); } TiXmlElement* globalsElement = yafElement->FirstChildElement( "globals" ); processGlobals(globalsElement); TiXmlElement* lightingElement = yafElement->FirstChildElement("lighting"); processGlobalLight(lightingElement); processLights(lightingElement); TiXmlElement* camerasElement = yafElement->FirstChildElement("cameras"); processCameras(camerasElement); TiXmlElement* texturesElement = yafElement->FirstChildElement("textures"); processTextures(texturesElement); TiXmlElement* appearanceElement = yafElement->FirstChildElement("appearances"); processAppearances(appearanceElement); TiXmlElement* animationsElement = yafElement->FirstChildElement("animations"); if(animationsElement!=NULL) { processAnimations(animationsElement); map<string,Animation*>::iterator it = animations.begin(); for(;it!=animations.end();it++) { (*it->second).print(); } } TiXmlElement* graphElement = yafElement->FirstChildElement("graph"); processGraph(graphElement); }