diff options
Diffstat (limited to 'src/libjin/Graphics/particles/je_particle.cpp')
-rw-r--r-- | src/libjin/Graphics/particles/je_particle.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/libjin/Graphics/particles/je_particle.cpp b/src/libjin/Graphics/particles/je_particle.cpp deleted file mode 100644 index 53f4570..0000000 --- a/src/libjin/Graphics/particles/je_particle.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "../../math/je_math.h" - -#include "je_particle.h" - -using namespace JinEngine::Math; - -namespace JinEngine -{ - namespace Graphics - { - namespace Particles - { - - Particle::Particle(const Graphic* grc) - : graphic(grc) - { - reset(); - } - - void Particle::reset() - { - transform.set(0, 0, 1, 1, 0, 0, 0); - lifeTime = 1.0f; - life = 0.0f; - speed.set(0, 0); - linearAcceleration.set(0, 0); - radialAcceleration = 0.0f; - angularSpeed = 0; - scaleBegin = 1; - scaleEnd = 1; - color = Color::WHITE; - colorStart = Color::WHITE; - colorEnd = Color::WHITE; - alive = true; - } - - void Particle::update(float dt) - { - float t = life / lifeTime; - // Lerp color - color.r = lerp<int>(colorStart.r, colorEnd.r, t); - color.g = lerp<int>(colorStart.g, colorEnd.g, t); - color.b = lerp<int>(colorStart.b, colorEnd.b, t); - color.a = lerp<int>(colorStart.a, colorEnd.a, t); - // Lerp scale. - Vector2<float> scale = transform.getScale(); - scale.x = lerp<float>(scaleBegin, scaleEnd, t); - scale.y = scale.x; - transform.setScale(scale.x, scale.y); - // Calculate position. - speed += linearAcceleration * dt; - transform.move(speed * dt); - // Calculate rotation. - angularSpeed += radialAcceleration * dt; - transform.rotate(angularSpeed * dt); - // Update life time. - life += dt; - alive = life < lifeTime; - } - - void Particle::render() - { - Color c = gl.getColor(); - gl.setColor(color); - if (graphic != nullptr) - graphic->render(transform); - gl.getColor(); - } - - } - } -}
\ No newline at end of file |