Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.h @ 3931

Last change on this file since 3931 was 3931, checked in by bensch, 19 years ago

orxonox/branches/particleEngine: some more properties

File size: 1.2 KB
Line 
1/*!
2    \file particle_engine.h
3    \brief Definition of the ParticleEngine
4*/
5
6#ifndef _PARTICLE_ENGINE_H
7#define _PARTICLE_ENGINE_H
8
9#include "base_object.h"
10
11// FORWARD DEFINITION
12template<class T> class tList;
13class ParticleSystem;
14class ParticleEmitter;
15
16struct ParticleConnection
17{
18  ParticleEmitter* emitter;    //!< The emitter to emit system from.
19  ParticleSystem* system;      //!< The Particles emitted from emitter.
20};
21
22//! A default singleton class.
23class ParticleEngine : public BaseObject {
24
25 public:
26  static ParticleEngine* getInstance(void);
27  virtual ~ParticleEngine(void);
28
29  void tick(float dt);
30
31  void addSystem(ParticleSystem* system);
32  void addEmitter(ParticleEmitter* emitter);
33  void addConection(ParticleEmitter* emitter, ParticleSystem* system);
34
35  bool removeSystem(ParticleSystem* system);
36  bool removeEmitter(ParticleEmitter* emitter);
37  bool breakConection(ParticleEmitter* emitter, ParticleSystem* system);
38
39 private:
40  ParticleEngine(void);
41  static ParticleEngine* singletonRef;
42
43  tList<ParticleSystem>* systemList;
44  tList<ParticleEmitter>* emitterList;
45
46  tList<ParticleConnection>* connectionList;
47};
48
49#endif /* _PARTICLE_ENGINE_H */
Note: See TracBrowser for help on using the repository browser.