コード例 #1
0
ファイル: XMLScene.cpp プロジェクト: PMRocha/Laig
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);
}
コード例 #2
0
ファイル: YafFile.cpp プロジェクト: jnadal/LAIG-Projeto
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);
}