00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_ParticleRendererh_INCLUDE__)
00022 #define __INCLUDE_ParticleRendererh_INCLUDE__
00023
00024 class Particle;
00025 class ParticleRenderer
00026 {
00027 public:
00028 virtual void renderParticle(Particle &particle) = 0;
00029 virtual void simulateParticle(Particle &particle, float time) = 0;
00030 virtual void recycleParticle(Particle &particle) { }
00031 };
00032
00033 class ParticleRendererPoints : public ParticleRenderer
00034 {
00035 public:
00036 static ParticleRendererPoints *getInstance();
00037 virtual void renderParticle(Particle &particle);
00038 virtual void simulateParticle(Particle &particle, float time);
00039 };
00040
00041 class ParticleRendererQuads : public ParticleRenderer
00042 {
00043 public:
00044 static ParticleRendererQuads *getInstance();
00045 virtual void renderParticle(Particle &particle);
00046 virtual void simulateParticle(Particle &particle, float time);
00047 };
00048
00049 class ParticleRendererDebris : public ParticleRenderer
00050 {
00051 public:
00052 static ParticleRendererDebris *getInstance();
00053 virtual void renderParticle(Particle &particle);
00054 virtual void simulateParticle(Particle &particle, float time);
00055 };
00056
00057 class ParticleRendererSmoke : public ParticleRenderer
00058 {
00059 public:
00060 static ParticleRendererSmoke *getInstance();
00061 virtual void renderParticle(Particle &particle);
00062 virtual void simulateParticle(Particle &particle, float time);
00063 };
00064
00065 class ParticleRendererNapalm : public ParticleRenderer
00066 {
00067 public:
00068 static ParticleRendererNapalm *getInstance();
00069 virtual void renderParticle(Particle &particle);
00070 virtual void simulateParticle(Particle &particle, float time);
00071 };
00072
00073 class ParticleRendererMushroom : public ParticleRenderer
00074 {
00075 public:
00076 static ParticleRendererMushroom *getInstance();
00077 virtual void renderParticle(Particle &particle);
00078 virtual void simulateParticle(Particle &particle, float time);
00079 };
00080
00081 class ParticleRendererRain : public ParticleRenderer
00082 {
00083 public:
00084 static ParticleRendererRain *getInstance();
00085 virtual void renderParticle(Particle &particle);
00086 virtual void simulateParticle(Particle &particle, float time);
00087 };
00088
00089 class ParticleRendererSnow : public ParticleRenderer
00090 {
00091 public:
00092 static ParticleRendererSnow *getInstance();
00093 virtual void renderParticle(Particle &particle);
00094 virtual void simulateParticle(Particle &particle, float time);
00095 };
00096
00097 class ParticleRendererWall : public ParticleRenderer
00098 {
00099 public:
00100 static ParticleRendererWall *getInstance();
00101 virtual void renderParticle(Particle &particle);
00102 virtual void simulateParticle(Particle &particle, float time);
00103 };
00104
00105 #endif // __INCLUDE_ParticleRendererh_INCLUDE__