diff options
Diffstat (limited to 'src/libjin/Graphics/particle')
-rw-r--r-- | src/libjin/Graphics/particle/je_particle.h | 14 | ||||
-rw-r--r-- | src/libjin/Graphics/particle/je_particle_emitter.cpp | 14 | ||||
-rw-r--r-- | src/libjin/Graphics/particle/je_particle_emitter.h | 22 | ||||
-rw-r--r-- | src/libjin/Graphics/particle/je_particle_system.h | 9 |
4 files changed, 45 insertions, 14 deletions
diff --git a/src/libjin/Graphics/particle/je_particle.h b/src/libjin/Graphics/particle/je_particle.h index cb176bb..089bf35 100644 --- a/src/libjin/Graphics/particle/je_particle.h +++ b/src/libjin/Graphics/particle/je_particle.h @@ -8,7 +8,7 @@ namespace JinEngine namespace Graphics { - class ParticleSystem; + class ParticleEmitter; struct LifeTimeDef { @@ -23,6 +23,11 @@ namespace JinEngine } life; }; + struct LinearAccelaration + { + + }; + struct SpeedOverTimeDef { bool enable = false; @@ -74,8 +79,14 @@ namespace JinEngine /// struct ParticleDef { + private: + friend class ParticleEmitter; + + public: + // Basic definitions. LifeTimeDef lifeTimeDef; ///< // Optional definitions. + SpeedOverTimeDef speedOverTimeDef; ///< SizeOverTimeDef sizeOverTimeDef; ///< ColorOverTime colorOverTimeDef; ///< @@ -87,6 +98,7 @@ namespace JinEngine /// struct Particle { + Particle(const ParticleDef& particleDef); /// /// Whole life time. /// diff --git a/src/libjin/Graphics/particle/je_particle_emitter.cpp b/src/libjin/Graphics/particle/je_particle_emitter.cpp index e69de29..0ab9cf1 100644 --- a/src/libjin/Graphics/particle/je_particle_emitter.cpp +++ b/src/libjin/Graphics/particle/je_particle_emitter.cpp @@ -0,0 +1,14 @@ +#ifndef __JE_PARTICLE_SYSTEM_H +#define __JE_PARTICLE_SYSTEM_H + +namespace JinEngine +{ + namespace Graphics + { + + + + } +} + +#endif
\ No newline at end of file diff --git a/src/libjin/Graphics/particle/je_particle_emitter.h b/src/libjin/Graphics/particle/je_particle_emitter.h index e700f16..5e4316d 100644 --- a/src/libjin/Graphics/particle/je_particle_emitter.h +++ b/src/libjin/Graphics/particle/je_particle_emitter.h @@ -61,10 +61,6 @@ namespace JinEngine PositionDef positionDef; ///< Emit position(relativily to the particle system center). DirectionDef directionDef; ///< Emit direction. EmitRateDef emitRateDef; ///< Emit rate. - /// - /// Particle definition. - /// - ParticleDef particleDef; ///< Particle definition. }; /// @@ -73,18 +69,24 @@ namespace JinEngine class ParticleEmitter { public: - ParticleEmitter(const ParticleEmitterDef& def); - /// - /// Emit a particle, particle system should assign particle value to the particle in particle pool, - /// but not use this return particle. + /// ParticleEmitter constructor. + /// + /// @param emitterDef Definition of particle emitter. + /// @param particleDef Definition of particle. /// - Particle emit(); + ParticleEmitter(const ParticleEmitterDef& emitterDef, const ParticleDef& particleDef); /// + /// 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(); + + private: float mDirection; + ParticleEmitterDef mEmitterDef; + ParticleDef mParticleDef; }; diff --git a/src/libjin/Graphics/particle/je_particle_system.h b/src/libjin/Graphics/particle/je_particle_system.h index 9ccb8df..270d9a8 100644 --- a/src/libjin/Graphics/particle/je_particle_system.h +++ b/src/libjin/Graphics/particle/je_particle_system.h @@ -22,10 +22,10 @@ namespace JinEngine /// struct ParticleSystemDef : public Temporary { - uint maxParticleCount = 1; ///< Max count of particles in pool. 1 by default. - - ParticleEmitter emitterDef; + uint maxParticleCount = 1; ///< Max count of particles in pool. 1 by default. + ParticleEmitterDef emitterDef; ///< Particle emitter definition. + ParticleDef particleDef; ///< Particle definition. }; /// @@ -64,6 +64,9 @@ namespace JinEngine void releaseParticle(); private: + // Disable default constructor. + ParticleSystem(); + /// /// Sprite to be drawn. /// |