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>2013-01-21 18:37:59 +0000
committerStijn Buys <ingar@osirion.org>2013-01-21 18:37:59 +0000
commit266d0d2cf6648509650bdd490c8e9c64be75b92e (patch)
treedf5fdb640ed09edcf044efdc8784b18a5881a513 /src/render/particleejectorscript.h
parentd4f9da2f3c19511b028da2569d7b6a8d1371e135 (diff)
Added attached property to draw particle systems in entity space instead of world space,
corrected several bugs in the initial particle system implementation, added impulse key to have particle systems react on impulse drive.
Diffstat (limited to 'src/render/particleejectorscript.h')
-rw-r--r--src/render/particleejectorscript.h67
1 files changed, 52 insertions, 15 deletions
diff --git a/src/render/particleejectorscript.h b/src/render/particleejectorscript.h
index a538bb5..5a79cc8 100644
--- a/src/render/particleejectorscript.h
+++ b/src/render/particleejectorscript.h
@@ -45,13 +45,6 @@ public:
return script_axis;
}
- /**
- * @brief true of the ejector reacts on thrust
- * */
- inline bool thrust() const {
- return script_thrust;
- }
-
inline const unsigned int interval() const
{
return script_interval;
@@ -68,39 +61,63 @@ public:
/**
* @brief offset defines the interpolation midpoint for alpha and radius ranges, default 0.5f
* */
- inline float offset() const {
+ inline const float offset() const {
return script_offset;
}
/**
* @brief lifespan of ejected particles, in milliseconds
* */
- inline unsigned long lifespan() const {
+ inline const unsigned long lifespan() const {
return script_lifespan;
}
/**
* @brief true if engine color is to be applied to ejected particles
* */
- inline bool engine() const {
+ inline const bool engine() const {
return script_engine;
}
/**
* @brief true if entity primary color is to be applied to ejected particles
* */
- inline bool entity() const
+ inline const bool entity() const
{
return script_entity;
}
/**
+ * @brief true for a thrust activated ejector
+ * */
+ inline const bool thrust() const
+ {
+ return script_thrust;
+ }
+
+ /**
+ * @brief true for a thrust impulse ejector
+ * */
+ inline const bool impulse() const
+ {
+ return script_impulse;
+ }
+
+ /**
* @brief true if entity secondary color is to be applied to ejected particles
* */
- inline bool entity_second() const
+ inline const bool entity_second() const
{
return script_entity_second;
}
+
+ /**
+ * @brief true if particles are drawn in model coordinates
+ * */
+ inline const bool attached() const
+ {
+ return script_attached;
+ }
/**
* @brief name of the texture used to render ejected particles
@@ -305,13 +322,29 @@ public:
}
/**
- * @brief make ejector react on thruster setting
+ * @brief enable or disable thrust activated ejector
* */
inline void set_thrust(const bool use_thrust)
{
script_thrust = use_thrust;
}
+ /**
+ * @brief enable or disable impulse activated ejector
+ * */
+ inline void set_impulse(const bool use_impulse)
+ {
+ script_impulse = use_impulse;
+ }
+
+ /**
+ * @brief ejector particles are drawn in entity coordinates
+ * */
+ inline void set_attached(const bool attached)
+ {
+ script_attached = attached;
+ }
+
/**
* @brief set the particle color
* */
@@ -353,9 +386,13 @@ private:
bool script_entity_second;
/// particles jave engine color
bool script_engine;
- /// ejector reacts on engine thrust
+ /// thrust activated ejector
bool script_thrust;
-
+ /// impulse activated ejector
+ bool script_impulse;
+ /// ejector is attached to entity coordinates
+ bool script_attached;
+
/// texture to render particles with
std::string script_texture;
/// texture cull