aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/particle
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-24 22:08:46 +0800
committerchai <chaifix@163.com>2018-10-24 22:08:46 +0800
commitd8d7963b9b658799b806d516bbd6b44c4baa28f8 (patch)
tree4a8c7c247e5c429a4ee50baf3b5be2032575aab6 /src/libjin/Graphics/particle
parente98acfb0d497e9c4560554cba73eb5c313ea034a (diff)
+粒子系统测试
Diffstat (limited to 'src/libjin/Graphics/particle')
-rw-r--r--src/libjin/Graphics/particle/je_particle.h14
-rw-r--r--src/libjin/Graphics/particle/je_particle_emitter.cpp14
-rw-r--r--src/libjin/Graphics/particle/je_particle_emitter.h22
-rw-r--r--src/libjin/Graphics/particle/je_particle_system.h9
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.
///