void CParticleSystemLibrary::Simulate() { CParticleSystemLibrary* pPSL = Get(); tmap<size_t, CSystemInstance*>::iterator it = pPSL->m_apInstances.begin(); tvector<size_t> aiDeleted; for (; it != pPSL->m_apInstances.end(); it++) { CSystemInstance* pInstance = (*it).second; pInstance->Simulate(); if (pInstance->IsStopped() && pInstance->GetNumParticles() == 0) aiDeleted.push_back((*it).first); } for (size_t i = 0; i < aiDeleted.size(); i++) RemoveInstance(aiDeleted[i]); }
void InstanceManager::RemoveAll() { while (!_instances.empty()) RemoveInstance(_instances.begin()->mcfg.id); }
void CParticleSystemLibrary::ClearInstances() { CParticleSystemLibrary* pPSL = Get(); while (pPSL->m_apInstances.size()) RemoveInstance((*pPSL->m_apInstances.begin()).first); }
void VStringInputMapManager::RemoveInstance(VStringInputMap *pInstance) { if(pInstance == NULL) return; RemoveInstance(pInstance->GetIndex()); }