Rev | Line | |
---|
[852] | 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.