aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/particles/je_particle_emitter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/particles/je_particle_emitter.h')
-rw-r--r--src/libjin/Graphics/particles/je_particle_emitter.h33
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;
};