Example #1
0
void Material::read( xmlNodePtr root )
{
	int i;
	double tmp[4];
	xmlNodePtr node;

	char* str = xmlFindString( root, "Name", "Default_Name" );
	name = str;				// name is a stringc

    node = xmlGetNode( root, "Ambient", 0 );
	xmlExtractDoubleArray( node, ',', tmp, 4 );
	for ( i = 0 ; i < 4 ; i++ )
		amb[i] = (float)tmp[i];
	
    node = xmlGetNode( root, "Diffuse", 0 );
	xmlExtractDoubleArray( node, ',', tmp, 4 );
	for ( i = 0 ; i < 4 ; i++ )
		diff[i] = (float)tmp[i];

    node = xmlGetNode( root, "Specular", 0 );
	xmlExtractDoubleArray( node, ',', tmp, 4 );
	for ( i = 0 ; i < 4 ; i++ )
		spec[i] = (float)tmp[i];

    node = xmlGetNode( root, "Emission", 0 );
	xmlExtractDoubleArray( node, ',', tmp, 4 );
	for ( i = 0 ; i < 4 ; i++ )
		emiss[i] = (float)tmp[i];

	node = xmlGetNode( root, "Shininess", 0 );
	shine = (float)xmlExtractDouble( node );

}
Example #2
0
double xmlFindDouble( xmlNodePtr node, const char * name, double def )
{
  xmlNodePtr n;

  if ( node == NULL )
    return def;

  n = xmlGetNode( node, name, 0 );
  if ( n )
    return xmlExtractDouble( n );

  return def;
}