diff options
Diffstat (limited to 'src/libjin/Graphics/particles/je_particle_emitter.h')
-rw-r--r-- | src/libjin/Graphics/particles/je_particle_emitter.h | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/libjin/Graphics/particles/je_particle_emitter.h b/src/libjin/Graphics/particles/je_particle_emitter.h index 5ffbdf2..34d0ee4 100644 --- a/src/libjin/Graphics/particles/je_particle_emitter.h +++ b/src/libjin/Graphics/particles/je_particle_emitter.h @@ -41,6 +41,9 @@ namespace JinEngine } direction; }; + /// + /// How many particles emitted per second. + /// struct EmitRateDef { bool enableRandom = false; @@ -65,6 +68,8 @@ namespace JinEngine EmitRateDef emitRateDef; ///< Emit rate. }; + class ParticleSystem; + /// /// Emit a single particle. /// @@ -72,23 +77,31 @@ namespace JinEngine { public: /// - /// ParticleEmitter constructor. - /// - /// @param emitterDef Definition of particle emitter. - /// @param particleDef Definition of particle. /// - ParticleEmitter(const ParticleEmitterDef& emitterDef, const ParticleDef& particleDef); + /// + ParticleEmitter(ParticleSystem& ps); + + /// + /// + /// + void update(float dt); + + private: + /// + /// + /// + ParticleSystem& mParticleSystem; /// /// Emit a particle according to emitter definition and particle definition, particle system should /// assign particle value to the particle in particle pool, but not use this return particle. /// - Particle emit(); + void emit(const ParticleEmitterDef& emitterDef, const ParticleDef& def, Particle& particle); - private: - float mDirection; - ParticleEmitterDef mEmitterDef; - ParticleDef mParticleDef; + /// + /// + /// + float mTime; }; |