diff options
Diffstat (limited to 'src/libjin/Graphics/particles/je_particle.h')
-rw-r--r-- | src/libjin/Graphics/particles/je_particle.h | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/src/libjin/Graphics/particles/je_particle.h b/src/libjin/Graphics/particles/je_particle.h deleted file mode 100644 index 6da05ac..0000000 --- a/src/libjin/Graphics/particles/je_particle.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef __JE_PARTICLE_H__ -#define __JE_PARTICLE_H__ - -#include "../../math/je_transform.h" -#include "../../math/je_vector2.hpp" -#include "../je_color.h" -#include "../je_graphic.h" - -namespace JinEngine -{ - namespace Graphics - { - namespace Particles - { - - class ParticleEmitter; - - /// - /// - /// - struct LifeTimeDef - { - bool enableRandom = false; - Struct(life, - struct - { - float floor, ceil; - } random; - float life = 1.0f; - ); - }; - - struct ScaleOverTimeDef - { - bool enable = false; - float start = 1; - float end = 1; - }; - - struct ColorOverTimeDef - { - bool enable = false; - Color colorStart = Color::WHITE; - Color colorEnd = Color::WHITE; - }; - - struct linearAccelarationDef - { - Math::Vector2<float> linearAccelaration; - }; - - struct RadialAccelarationDef - { - float radialAccelaration = 0.f; - }; - - struct AngularSpeedDef - { - bool enableRandom = false; - Struct(angularSpeed, - struct - { - float floor = 0; - float ceil = 0; - } random; - float angularSpeed = 0; - ); - }; - - /// - /// - /// - struct ParticleDef - { - private: - friend class ParticleEmitter; - - public: - // Basic definitions. - LifeTimeDef lifeTimeDef; ///< - linearAccelarationDef linearAccelarationDef; ///< - RadialAccelarationDef radialAccelarationDef; ///< - AngularSpeedDef angularSpeedDef; ///< - // Optional definitions. - ScaleOverTimeDef sizeOverTimeDef; ///< - ColorOverTimeDef colorOverTimeDef; ///< - }; - - /// - /// A single particle contains various properties of particle, such as position, accelaration, color - /// and other attributes changed over time. - /// - struct Particle - { - /// - /// Default constructor. - /// - Particle(const Graphic* graphic); - - /// - /// Reset to default. - /// - void reset(); - - /// - /// - /// - void update(float dt); - - /// - /// - /// - void render(); - - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /// - /// Whole life time. - /// - float lifeTime = 1.0f; - - /// - /// Current life time. - /// - float life = 0.0f; - - const Graphic* graphic; - - /// - /// Color over lifetime. - /// - Color color = Color::WHITE; - Color colorStart = Color::WHITE; - Color colorEnd = Color::WHITE; - - /// - /// Position scale rotation origin. - /// - Math::Transform transform; - - /// - /// Speeds. - /// - Math::Vector2<float> speed; - Math::Vector2<float> linearAcceleration; - float angularSpeed; - float radialAcceleration = 0; - - /// - /// Size over lifetime. - /// - float scaleBegin = 1; - float scaleEnd = 1; - - /// - /// Is particle still alive? Alive is equivalent to NOT available in particle pool. - /// - bool alive = true; - - }; - - } // namespace Particles - } // namespace Graphics -} // namespace JinEngine - -#endif
\ No newline at end of file |