Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-12-07 14:48:54 +0000
committerStijn Buys <ingar@osirion.org>2008-12-07 14:48:54 +0000
commit11229dcfef77baab5a7a3893a7c6281fbc5f7211 (patch)
tree54fa65dc37ffa35b486c1b7e76afe26ef2318859 /src/render/particles.h
parent7de62efc14d0e0f037051bd887c96f28fd9a3215 (diff)
flame particle systems
Diffstat (limited to 'src/render/particles.h')
-rw-r--r--src/render/particles.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/render/particles.h b/src/render/particles.h
index 0044832..9c9d44b 100644
--- a/src/render/particles.h
+++ b/src/render/particles.h
@@ -13,6 +13,7 @@
#include "math/color.h"
#include "math/vector3f.h"
#include "core/entity.h"
+#include "model/classes.h"
namespace render {
@@ -64,6 +65,8 @@ public:
inline float alpha() const { return particles_alpha; }
+ inline float offset() const { return particles_offset; }
+
static ParticleScript *find(const std::string &label);
static void init();
@@ -84,6 +87,7 @@ private:
float particles_eject;
float particles_speed;
float particles_alpha;
+ float particles_offset;
typedef std::map<std::string, ParticleScript *> Registry;
@@ -95,7 +99,7 @@ private:
/// abstract base class for a particle system attached to an entity
class ParticleSystem {
public:
- ParticleSystem(ParticleScript *script, core::Entity *entity, const math::Vector3f &location);
+ ParticleSystem(ParticleScript *script, core::Entity *entity, model::Particles *modelclass);
virtual ~ParticleSystem();
/// index of the texture to use
@@ -136,8 +140,11 @@ protected:
math::Vector3f ejector_location;
bool ejector_active;
+ float radius;
float now;
math::Color color;
+
+ model::Particles *particlesystem_modelclass;
};
/* ---- class Flame ------------------------------------------------ */
@@ -145,6 +152,11 @@ protected:
/// flame style particles, like engine flames
class Flame : public ParticleSystem
{
+public:
+ Flame(ParticleScript *script, core::Entity *entity, model::Particles *modelclass);
+ virtual ~Flame();
+
+ virtual void draw(float elapsed);
};
/* ---- class Jet -------------------------------------------------- */
@@ -153,7 +165,7 @@ class Flame : public ParticleSystem
class Jet : public ParticleSystem
{
public:
- Jet(ParticleScript *script, core::Entity *entity, const math::Vector3f &location);
+ Jet(ParticleScript *script, core::Entity *entity, model::Particles *modelclass);
virtual ~Jet();
virtual void draw(float elapsed);
@@ -165,7 +177,7 @@ public:
class Trail : public ParticleSystem
{
public:
- Trail(ParticleScript *script, core::Entity *entity, const math::Vector3f &location);
+ Trail(ParticleScript *script, core::Entity *entity, model::Particles *modelclass);
virtual ~Trail();
virtual void draw(float elapsed);