00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_Particleh_INCLUDE__)
00022 #define __INCLUDE_Particleh_INCLUDE__
00023
00024 #include <common/Vector.h>
00025 #include <graph/ParticleRenderer.h>
00026 #include <GLEXT/GLTextureSet.h>
00027
00028 class ParticleUserData
00029 {
00030 public:
00031 virtual ~ParticleUserData() {}
00032 };
00033
00034 class ParticleEngine;
00035 class Particle
00036 {
00037 public:
00038 Particle();
00039 virtual ~Particle();
00040
00041 void setParticle(
00042 float life, float mass, float friction,
00043 Vector &velocity, Vector &gravity,
00044 Vector &color, Vector &colorCounter,
00045 Vector &size, Vector &sizeCounter,
00046 float alpha, float alphaCounter,
00047 bool additiveTexture,
00048 bool windAffect);
00049 void unsetParticle();
00050
00051 float life_;
00052 float mass_;
00053 float friction_;
00054 float percent_, percentCounter_;
00055 Vector position_;
00056 Vector velocity_;
00057 Vector gravity_;
00058 Vector color_, colorCounter_;
00059 Vector size_, sizeCounter_;
00060 float alpha_, alphaCounter_;
00061 bool windAffect_;
00062 ParticleEngine *engine_;
00063
00064
00065 bool additiveTexture_;
00066 GLTexture *texture_;
00067 GLTextureSet *textureSet_;
00068 int textureCoord_;
00069 bool shadow_;
00070 bool simulated_;
00071
00072 float distance_;
00073 ParticleUserData *userData_;
00074 ParticleRenderer *renderer_;
00075 };
00076
00077 #endif // __INCLUDE_Particleh_INCLUDE__