TORCS  1.3.9
The Open Racing Car Simulator
grsmoke.h
Go to the documentation of this file.
1 #ifndef _GRSMOKE_H_
2 #define _GRSMOKE_H_
3 
4 #define SMOKE_INIT_SIZE 0.2f
5 #define MAX_SMOKE_LIFE 120
6 #define MAX_SMOKE_NUMBER 300
7 #define DELTAT 0.1f
8 #define VZ_INIT 0.05f
9 #define VY_INIT 0.1f
10 #define VX_INIT 0.1f
11 #define V_EXPANSION 0.4f
12 #define SMOKE_TYPE_TIRE 1
13 #define SMOKE_TYPE_ENGINE 2
14 
15 class ssgVtxTableSmoke : public ssgVtxTable
16 {
17 protected:
18  virtual void copy_from ( ssgVtxTableSmoke *src, int clone_flags ) ;
19 
20 public:
21  double max_life;
25  double cur_life;
27  sgVec3 cur_col;
29  int smokeType;
31  double dt;
32  double lastTime;
33  float sizex;
34  float sizey;
35  float sizez;
36  float init_alpha;
37  int stype;
38  virtual ssgBase *clone ( int clone_flags = 0 ) ;
39  ssgVtxTableSmoke () ;
40  ssgVtxTableSmoke (ssgVertexArray *shd_vtx , float initsize, int type);
41 
42  void draw_geometry();
43  virtual void drawHighlight ( sgVec4 colour ){ssgVtxTable::drawHighlight(colour);}
44  virtual void drawHighlight ( sgVec4 colour, int i ){ssgVtxTable::drawHighlight(colour,i);}
45 
46  virtual void pick ( int baseName ) { ssgVtxTable::pick(baseName);}
47  virtual void transform ( const sgMat4 m ) { ssgVtxTable::transform(m);}
48 
49  virtual void setVertices ( ssgVertexArray *vl ) { ssgVtxTable::setVertices(vl);}
50  virtual void setNormals ( ssgNormalArray *nl ) { ssgVtxTable::setNormals(nl);}
51  virtual void setTexCoords ( ssgTexCoordArray *tl ) { ssgVtxTable::setTexCoords(tl);}
52  virtual void setColours ( ssgColourArray *cl ) { ssgVtxTable::setColours(cl);}
53 
54  int getNumVertices () { return vertices -> getNum () ; }
55  int getNumNormals () { return normals -> getNum () ; }
56  int getNumColours () { return colours -> getNum () ; }
57  int getNumTexCoords () { return texcoords -> getNum () ; }
58 
59  int getNumTriangles () { return ssgVtxTable::getNumTriangles();}
60  void getTriangle ( int n, short *v1, short *v2, short *v3 ) { ssgVtxTable::getTriangle(n,v1,v2,v3);}
61  int getNumLines () {return ssgVtxTable::getNumLines();}
62  void getLine ( int n, short *v1, short *v2 ) { ssgVtxTable::getLine(n,v1,v2);}
63 
64 
65  virtual ~ssgVtxTableSmoke (void);
66 
67  virtual const char *getTypeName(void) { return ssgVtxTable::getTypeName();}
68 
69  virtual int load ( FILE *fd ) {return ssgVtxTable::load(fd);}
70  virtual int save ( FILE *fd ) {return ssgVtxTable::save(fd);}
71 };
72 
73 typedef struct tgrSmoke_st
74 {
77 }tgrSmoke;
78 
79 typedef struct
80 {
82  int number;
84 
85 
86 extern void grInitSmoke(int index);
87 extern void grAddSmoke(tCarElt *car, double t);
88 extern void grUpdateSmoke(double t);
89 extern void grShutdownSmoke ();
90 
91 extern int grSmokeMaxNumber;
92 extern double grSmokeDeltaT;
93 extern double grSmokeLife;
94 
95 
96 #endif /* _GRSMOKE_H_*/
virtual int save(FILE *fd)
Definition: grsmoke.h:70
double lastTime
Definition: grsmoke.h:32
double max_life
Definition: grsmoke.h:21
Car structure (tCarElt).
Definition: car.h:455
virtual const char * getTypeName(void)
Definition: grsmoke.h:67
virtual void copy_from(ssgVtxTableSmoke *src, int clone_flags)
Definition: grsmoke.cpp:475
tgrSmoke_st * next
Definition: grsmoke.h:76
virtual void transform(const sgMat4 m)
Definition: grsmoke.h:47
int getNumColours()
Definition: grsmoke.h:56
virtual void setVertices(ssgVertexArray *vl)
Definition: grsmoke.h:49
int grSmokeMaxNumber
Definition: grsmoke.cpp:52
struct tgrSmoke_st tgrSmoke
virtual ssgBase * clone(int clone_flags=0)
Definition: grsmoke.cpp:479
void getLine(int n, short *v1, short *v2)
Definition: grsmoke.h:62
float tdble
Floating point type used in TORCS.
Definition: tgf.h:48
virtual void setTexCoords(ssgTexCoordArray *tl)
Definition: grsmoke.h:51
void grInitSmoke(int index)
Definition: grsmoke.cpp:68
float init_alpha
Definition: grsmoke.h:36
int smokeTypeStep
Definition: grsmoke.h:30
void grShutdownSmoke()
remove the smoke information for a car
Definition: grsmoke.cpp:429
tgrSmoke * smokeList
Definition: grsmoke.h:81
double grSmokeLife
Definition: grsmoke.cpp:55
void draw_geometry()
Definition: grsmoke.cpp:515
int getNumLines()
Definition: grsmoke.h:61
void getTriangle(int n, short *v1, short *v2, short *v3)
Definition: grsmoke.h:60
virtual void drawHighlight(sgVec4 colour, int i)
Definition: grsmoke.h:44
double grSmokeDeltaT
Definition: grsmoke.cpp:53
virtual void pick(int baseName)
Definition: grsmoke.h:46
virtual void drawHighlight(sgVec4 colour)
Definition: grsmoke.h:43
ssgVtxTableSmoke * smoke
Definition: grsmoke.h:75
double cur_life
Definition: grsmoke.h:25
int getNumTexCoords()
Definition: grsmoke.h:57
int getNumNormals()
Definition: grsmoke.h:55
virtual int load(FILE *fd)
Definition: grsmoke.h:69
virtual void setColours(ssgColourArray *cl)
Definition: grsmoke.h:52
virtual void setNormals(ssgNormalArray *nl)
Definition: grsmoke.h:50
sgVec3 cur_col
Definition: grsmoke.h:27
int getNumTriangles()
Definition: grsmoke.h:59
virtual ~ssgVtxTableSmoke(void)
Definition: grsmoke.cpp:511
double step2_max_life
Definition: grsmoke.h:24
double step1_max_life
Definition: grsmoke.h:23
void grUpdateSmoke(double t)
update if necessary the smoke for a car
Definition: grsmoke.cpp:148
void grAddSmoke(tCarElt *car, double t)
Definition: grsmoke.cpp:221
int getNumVertices()
Definition: grsmoke.h:54
double step0_max_life
Definition: grsmoke.h:22