Line | |
---|
1 | #pragma once
|
---|
2 | #include "Vector.h"
|
---|
3 | #include "Particle.h"
|
---|
4 |
|
---|
5 | class ParticleEmitter
|
---|
6 | {
|
---|
7 | public:
|
---|
8 | ParticleEmitter(void);
|
---|
9 | ~ParticleEmitter(void);
|
---|
10 |
|
---|
11 | private:
|
---|
12 | float m_Radius;//emitter type=point if radius=0
|
---|
13 |
|
---|
14 | /*
|
---|
15 | float m_Transparency[3];
|
---|
16 | float albedo;
|
---|
17 | float symmetry;
|
---|
18 | */
|
---|
19 |
|
---|
20 | Vector* m_ScriptPositions;
|
---|
21 | int m_ScriptPositionCount;
|
---|
22 | float m_Offset;
|
---|
23 |
|
---|
24 | int m_Type;
|
---|
25 | Vector m_Position;
|
---|
26 | float m_Velocity;
|
---|
27 | float m_VelocityVariation;
|
---|
28 | Vector m_Direction;
|
---|
29 | unsigned int m_TimeToLive; //if 0 live forever
|
---|
30 | float m_Size;
|
---|
31 | float m_Sizevariation;
|
---|
32 | unsigned int m_TTLvariation;
|
---|
33 | unsigned int m_EmissionRate; //particles/sec; if 0 emits as much as possible
|
---|
34 |
|
---|
35 | bool m_isDirectionSet;
|
---|
36 |
|
---|
37 | unsigned int m_EmittedInSecond; //number of particles allready emitted in this second
|
---|
38 |
|
---|
39 | public:
|
---|
40 |
|
---|
41 | unsigned int Emit(unsigned int Dt,unsigned int maxcount,Particle* particles,Vector CamPos=Vector());
|
---|
42 | void setPosition(Vector pos){m_Position=pos;}
|
---|
43 | void setRadius(float radius){m_Radius=radius;}
|
---|
44 | void setVelocity(float vel){m_Velocity=vel;}
|
---|
45 | void setVelocityVariation(float vel){m_VelocityVariation=vel;}
|
---|
46 | void setDirection(Vector dir){m_Direction=dir;m_isDirectionSet=true;}
|
---|
47 | void setTimeToLive(unsigned int ttl){m_TimeToLive=ttl;}
|
---|
48 | void setTimeToLiveVariation(unsigned int ttl){m_TTLvariation=ttl;}
|
---|
49 | void setSize(float size){m_Size=size;}
|
---|
50 | void setSizevariation(float var){m_Sizevariation=var;}
|
---|
51 | void setEmissionRate(unsigned int rate){m_EmissionRate=rate;}
|
---|
52 | void setPositionsFile(char* filename);
|
---|
53 | void setOffset(float o){m_Offset=o;}
|
---|
54 |
|
---|
55 | float getSize(){return m_Size;}
|
---|
56 | };
|
---|
Note: See
TracBrowser
for help on using the repository browser.