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