blob: a49dd691e4aef5e9d90ca23b287682a15e1b4c91 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
/*
* 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
|