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); } }
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); }
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(); } }
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); }