Пример #1
0
void SceneHelper::EnumerateEntityTextures(DAVA::Scene *forScene, DAVA::Entity *forNode, DAVA::TexturesMap &textureCollection, TexturesEnumerateMode mode)
{
    if(!forNode || !forScene) return;
    
    DAVA::MaterialSystem *matSystem = forScene->GetMaterialSystem();
    
    DAVA::Set<DAVA::NMaterial *> materials;
    matSystem->BuildMaterialList(forNode, materials);
    
    Set<NMaterial *>::const_iterator endIt = materials.end();
    for(Set<NMaterial *>::const_iterator it = materials.begin(); it != endIt; ++it)
    {
        DAVA::NMaterial *mat = *it;
        
        String materialName = mat->GetMaterialName().c_str();
        String parentName = mat->GetParent() ? mat->GetParent()->GetMaterialName().c_str() : String() ;
        
        if((parentName.find("Particle") != String::npos) || (materialName.find("Particle") != String::npos))
        {   //because particle materials has textures only after first start, so we have different result during scene life.
            continue;
        }
        
        CollectTextures(*it, textureCollection, mode);
    }
}
Пример #2
0
static void CollectTextures(MdlObject *o, set<Texture*>& textures) {
    for (int a=0; a<o->poly.size(); a++) {
        if (o->poly[a]->texture) textures.insert(o->poly[a]->texture);
    }
    for (int a=0; a<o->childs.size(); a++)
        CollectTextures(o->childs[a],textures);
}
Пример #3
0
void EditorUI::uiAddUnitTextures()
{
	// go through all the textures used by the unit
	TextureGroup *cur = GetCurrentTexGroup();
	if (cur && model->root) {
		CollectTextures(model->root, cur->textures);
		InitTexBrowser();
	}
}
Пример #4
0
static void CollectTextures(MdlObject *o, set<Texture*>& textures) {
	PolyMesh* pm = o->GetPolyMesh();
	if (pm) {
		for (unsigned int a=0;a<pm->poly.size();a++) {
			if (pm->poly[a]->texture) textures.insert(pm->poly[a]->texture.Get());
		}
	}
	for (unsigned int a=0;a<o->childs.size();a++)
		CollectTextures(o->childs[a],textures);
}