00001 00006 #ifndef __POINTEMITTER_H__ 00007 #define __POINTEMITTER_H__ 00008 00009 #ifdef __APPLE__ 00010 #include <GraphicsLib/Point3.h> 00011 #include <GraphicsLib/Util.h> 00012 #include <GLUT/glut.h> 00013 #else 00014 #include <GL/glut.h> 00015 #include "Util.h" 00016 #include "Point3.h" 00017 #endif 00018 00019 #include "Emitter.h" 00020 #include "PointParticle.h" 00021 #include "ImgParticle.h" 00022 #include "StrikeParticle.h" 00023 00024 namespace ParticleSystems { 00026 00032 class PointEmitter : public Emitter { 00033 public: 00034 00036 00046 PointEmitter( int SYSID, 00047 Solver *s, 00048 PARTICLETYPE type, 00049 GraphicsLib::Vector initVel, 00050 GraphicsLib::Colour initialColor, 00051 GLfloat pSize, 00052 GraphicsLib::Point3 initPos, 00053 GLfloat sweep); 00054 00056 00067 PointEmitter( int SYSID, 00068 Solver *s, 00069 PARTICLETYPE type, 00070 GraphicsLib::Vector initVel, 00071 GraphicsLib::Colour initialColor, 00072 GLfloat pSize, 00073 char *TexName, 00074 GraphicsLib::Point3 initPos, 00075 GLfloat sweep); 00076 00078 00081 ~PointEmitter(); 00082 00084 00088 virtual Particle* emittParticles(void); 00089 00091 00095 virtual void reBirth(Particle *p); 00096 00098 00102 GraphicsLib::Vector withSweep(); 00103 00105 00108 GraphicsLib::Point3 initPosition; 00109 00111 00114 GLfloat sweep; 00115 }; 00116 } 00117 #endif 00118 00119