diff options
Diffstat (limited to 'src/libjin/Graphics/particle/je_particle.h')
-rw-r--r-- | src/libjin/Graphics/particle/je_particle.h | 66 |
1 files changed, 47 insertions, 19 deletions
diff --git a/src/libjin/Graphics/particle/je_particle.h b/src/libjin/Graphics/particle/je_particle.h index d32d9fe..474e15b 100644 --- a/src/libjin/Graphics/particle/je_particle.h +++ b/src/libjin/Graphics/particle/je_particle.h @@ -8,33 +8,61 @@ namespace JinEngine namespace Graphics { + class ParticleSystem; + /// - /// Single particle. Grab from love2d. + /// A single particle contains various properties of particle, such as position, accelaration, color and + /// other attributes changed over time. /// - class Particle + struct Particle { - public: + /// + /// Whole life time. + /// + float lifeTime = 0.0f; + + /// + /// Current life time. + /// + float life = 0.0f; + + /// + /// Current position. + /// + float position[2] = {0,0}; + + /// + /// Emitte direction. + /// + float direction = 0; + + Math::Vector2<float> speed; + Math::Vector2<float> linearAcceleration; + float radialAcceleration = 0; + float tangetialAcceleration = 0; - private: - float mLifeTime; - float mLife; - float mPosition[2]; - float mDirection; + /// + /// Size over lifetime. + /// + float size = 1; + float sizeBegin = 1; + float sizeEnd = 1; - Math::Vector2<float> mSpeed; - float mGravity; - float mRadialAcceleration; - float mTangetialAcceleration; + float rotation = 0; + float angle = 0; - float mSize; - float mSizeStart; - float mSizeEnd; + /// + /// Color over lifetime. + /// + Color color = Color::WHITE; + Color colorStart = Color::WHITE; + Color colorEnd = Color::WHITE; - float mRotation; - float mSpinStart; - float mSpinEnd; + /// + /// Is particle still alive? Alive is equivalent to NOT available in particle pool. + /// + bool alive = false; - float color[4]; }; } // namespace Graphics |