source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/demos/Standalone/Hierarchical Systems Demo [OpenGL]/RESOURCES/include/My3DGraphRes/ParticleEmitter.h @ 3255

Revision 3255, 1.6 KB checked in by szirmay, 15 years ago (diff)
Line 
1#pragma once
2#include "Vector.h"
3#include "Particle.h"
4
5class ParticleEmitter
6{
7public:
8        ParticleEmitter(void);
9        ~ParticleEmitter(void);
10
11private:
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
39public:
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.