Exemple #1
0
TypeHierarchy::TypeHierarchy(const analysis * a) : leafNodes()
{
	if(!a || !a->the_domain) 
	{
		ParseFailure pf;
		throw(pf);
	};
	
	if(!a->the_domain->types) return;
	for(pddl_type_list::const_iterator i = a->the_domain->types->begin();
			i != a->the_domain->types->end();++i)
	{
		if((*i)->type)
		{
			add(PTypeRef(*i),PTypeRef((*i)->type));
			addDown(PTypeRef((*i)->type),PTypeRef(*i));
		}
		else
		{	
			if((*i)->either_types)
			{
				for(pddl_type_list::const_iterator j = (*i)->either_types->begin();
					j != (*i)->either_types->end();++j)
				{
					add(PTypeRef(*i),PTypeRef(*j));
					addDown(PTypeRef(*j),PTypeRef(*i));
				};
			}
			else
			{
				PTypeRef pt(*i);
				Graph::iterator j = graph.find(&pt);
				if(j == graph.end())
				{
					TypeRef * c = pt.clone();
					graph[c] = set<const TypeRef*>();
					downGraph[c] = set<const TypeRef*>();
				};
			};
		};
	};
};
Exemple #2
0
void Model::deserialize( XMLloader& loader, istream& file )
{
	ModelDef::deserialize( loader, ModelDef( Vector2f(), 0, Vector2f(1,1), 0, 255, 255, 255, 255 ) );

	if (childDown != nullptr)
	{
		delete childDown;
		childDown = nullptr;
	}
	if (childUp != nullptr)
	{
		delete childUp;
		childUp = nullptr;
	}

	if (sibling != nullptr)
	{
		delete sibling;
		sibling = nullptr;
	}

	setTexture(  loader.load( "ts", (size_t)0 ) );

	setColor( sf::Color( clR, clG, clB, clA ) );

	loader.nextLine(file);

	while( loader.str() != "\\" )
	{
		bool b = loader.load( "ud", 0 );
		Model *m = new Model();
		
		if( b == 0 )
			addUp( m );
		else
			addDown( m );

		m->deserialize( loader, file );
		
		loader.nextLine(file);
	}
}