Bubba-3D  0.9.0
Awesome game engine!
Particle.h
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 #pragma once
18 
19 #include "linmath/float3.h"
20 #include "linmath/Quaternion.h"
21 
22 #define PARTICLE_SPEED ((rand() % 6000) - 3000.0f) / 5000.0f
23 #define PARTICLE_LIFE 1000.0f + (rand() % 1000)
24 
25 class ParticleConf;
26 
31 class Particle {
32 
33 public:
34  Particle(ParticleConf *conf, chag::float4x4 modelMatrix);
35 
41  void reset(ParticleConf *conf, chag::float4x4 modelMatrix);
42 
47  bool isAlive();
48 
54  void update(float deltaTime, float distanceToCam, ParticleConf *conf);
55  chag::float3 getPosition();
56 
57 private:
58  float life; //in ms
59  chag::float3 position;
60  chag::float3 velocity;
61 };
void reset(ParticleConf *conf, chag::float4x4 modelMatrix)
Definition: Particle.cpp:24
bool isAlive()
Definition: Particle.cpp:41
void update(float deltaTime, float distanceToCam, ParticleConf *conf)
Definition: Particle.cpp:35