diff options
author | Brian Paul <[email protected]> | 2000-06-27 16:52:38 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2000-06-27 16:52:38 +0000 |
commit | 5b0a7f397104ff1938908410b422e529120acde5 (patch) | |
tree | 9602945668b91eef92d8986c0ed909b4218ac9d9 /progs/demos/particles.h | |
parent | e4b40b0211db61c219b6349e16835d4cdf4641aa (diff) |
initial check-in
Diffstat (limited to 'progs/demos/particles.h')
-rw-r--r-- | progs/demos/particles.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/progs/demos/particles.h b/progs/demos/particles.h new file mode 100644 index 00000000000..a49dd691e4a --- /dev/null +++ b/progs/demos/particles.h @@ -0,0 +1,81 @@ +/* + * This program is under the GNU GPL. + * Use at your own risk. + * + * written by David Bucciarelli ([email protected]) + * Humanware s.r.l. + */ + +#ifndef PARTICLES_H +#define PARTICLES_H + +#include <GL/gl.h> + +class particle { + protected: + float age; // in seconds + float acc[3]; + float vel[3]; + float pos[3]; + + public: + particle(); + virtual ~particle() {}; + + virtual void beginDraw(void) {}; + virtual void draw(void)=0; + virtual void endDraw(void) {}; + + virtual void elapsedTime(float); + virtual void checkAge(void) {}; +}; + +class particleSystem { + protected: + particle **part; + + float t; + + unsigned long particleNum; + public: + particleSystem(); + ~particleSystem(); + + void addParticle(particle *); + + void reset(void); + + void draw(void); + + void addTime(float); +}; + +class rainParticle : public particle { + protected: + static float min[3]; + static float max[3]; + static float partLength; + + float oldpos[3]; + + void init(void); + public: + rainParticle(); + + static void setRainingArea(float, float, float, + float, float, float); + static void setLength(float); + static float getLength(void) { return partLength; }; + + void beginDraw(void) { glBegin(GL_LINES); }; + void draw(void); + void endDraw(void) { glEnd(); }; + + void elapsedTime(float); + + void checkAge(void); + + void randomHeight(void); +}; + +#endif |