TORCS  1.3.10
The Open Racing Car Simulator
Loading...
Searching...
No Matches
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
15class ssgVtxTableSmoke : public ssgVtxTable
16{
17protected:
18 virtual void copy_from ( ssgVtxTableSmoke *src, int clone_flags ) ;
19
20public:
21 double max_life;
25 double cur_life;
27 sgVec3 cur_col;
31 double dt;
32 double lastTime;
33 float sizex;
34 float sizey;
35 float sizez;
37 int stype;
38 virtual ssgBase *clone ( int clone_flags = 0 ) ;
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
78
79typedef struct
80{
82 int number;
84
85
86extern void grInitSmoke(int index);
87extern void grAddSmoke(tCarElt *car, double t);
88extern void grUpdateSmoke(double t);
89extern void grShutdownSmoke ();
90
91extern int grSmokeMaxNumber;
92extern double grSmokeDeltaT;
93extern double grSmokeLife;
94
95
96#endif /* _GRSMOKE_H_*/
struct CarElt tCarElt
Car structure (tCarElt).
virtual int save(FILE *fd)
Definition grsmoke.h:70
void getTriangle(int n, short *v1, short *v2, short *v3)
Definition grsmoke.h:60
void draw_geometry()
Definition grsmoke.cpp:515
virtual void setTexCoords(ssgTexCoordArray *tl)
Definition grsmoke.h:51
int getNumTriangles()
Definition grsmoke.h:59
double max_life
Definition grsmoke.h:21
int getNumTexCoords()
Definition grsmoke.h:57
virtual void setVertices(ssgVertexArray *vl)
Definition grsmoke.h:49
virtual const char * getTypeName(void)
Definition grsmoke.h:67
virtual void setColours(ssgColourArray *cl)
Definition grsmoke.h:52
int getNumNormals()
Definition grsmoke.h:55
virtual void transform(const sgMat4 m)
Definition grsmoke.h:47
int getNumColours()
Definition grsmoke.h:56
float init_alpha
Definition grsmoke.h:36
double lastTime
Definition grsmoke.h:32
virtual void pick(int baseName)
Definition grsmoke.h:46
void getLine(int n, short *v1, short *v2)
Definition grsmoke.h:62
double cur_life
Definition grsmoke.h:25
int getNumLines()
Definition grsmoke.h:61
virtual void setNormals(ssgNormalArray *nl)
Definition grsmoke.h:50
double step0_max_life
Definition grsmoke.h:22
double step2_max_life
Definition grsmoke.h:24
virtual void drawHighlight(sgVec4 colour, int i)
Definition grsmoke.h:44
sgVec3 cur_col
Definition grsmoke.h:27
double step1_max_life
Definition grsmoke.h:23
virtual ~ssgVtxTableSmoke(void)
Definition grsmoke.cpp:511
virtual ssgBase * clone(int clone_flags=0)
Definition grsmoke.cpp:479
virtual void copy_from(ssgVtxTableSmoke *src, int clone_flags)
Definition grsmoke.cpp:475
virtual int load(FILE *fd)
Definition grsmoke.h:69
virtual void drawHighlight(sgVec4 colour)
Definition grsmoke.h:43
int getNumVertices()
Definition grsmoke.h:54
float tdble
Floating point type used in TORCS.
Definition tgf.h:47
double grSmokeLife
Definition grsmoke.cpp:55
double grSmokeDeltaT
Definition grsmoke.cpp:53
int grSmokeMaxNumber
Definition grsmoke.cpp:52
void grInitSmoke(int index)
Definition grsmoke.cpp:68
void grShutdownSmoke()
remove the smoke information for a car
Definition grsmoke.cpp:429
void grUpdateSmoke(double t)
update if necessary the smoke for a car
Definition grsmoke.cpp:148
struct tgrSmoke_st tgrSmoke
void grAddSmoke(tCarElt *car, double t)
Definition grsmoke.cpp:221
tgrSmoke_st * next
Definition grsmoke.h:76
ssgVtxTableSmoke * smoke
Definition grsmoke.h:75
tgrSmoke * smokeList
Definition grsmoke.h:81