123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * This program is under the GNU GPL.
- * Use at your own risk.
- *
- * written by David Bucciarelli (humanware@plus.it)
- * 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
|