00001 00006 #ifndef __PARTICLESYSTEMMANAGER_H__ 00007 #define __PARTICLESYSTEMMANAGER_H__ 00008 00009 #include "ParticleSystem.h" 00010 #include "DataStructure.h" 00011 #include "Debugger.h" 00012 00013 namespace ParticleSystems { 00014 00016 00019 typedef std::vector<ParticleSystem *> psList; 00020 00022 00025 typedef std::vector<ParticleSystem *>::iterator psListItt; 00026 00028 00033 class ParticleSystemManager { 00034 00035 public: 00037 00040 ParticleSystemManager(); 00041 00043 00046 ~ParticleSystemManager(); 00047 00049 00053 void addSystem(ParticleSystem *particleSystem); 00054 00056 00060 void removeSystem(ParticleSystem *particleSystem); 00061 00063 00066 void update(); 00067 00069 00072 void render(); 00073 00075 00078 void reset(); 00079 00081 00084 void pause(); 00085 00087 00090 void restart(); 00091 00093 00097 int getNextID(); 00098 00100 00105 bool doesExist(ParticleSystem *particleSystem); 00106 00107 private: 00109 00112 //DataStructure *dataStrc; 00113 psList pSystems; 00114 00116 00119 int numParticleSystems; 00120 00121 00122 }; 00123 } 00124 #endif 00125