Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/physics/src/lib/graphics/particles/particle_engine.h @ 4178

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

orxonox/branches/physics: merged the Trunk into the physics Branche again:
merged with command:
svn merge ../trunk physics -r 3953:HEAD
no important conflicts

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