raSystem  1.0 bata
raParticleSystem.h
Go to the documentation of this file.
1 #pragma once
2 
3  struct RAPI raParticle
4  {
8 
9  float m_age;
10  float m_speed;
11 
12  raParticle();
13  void Update(float fTime);
14  };
15 
16  class RAPI raParticleSystem : public raEntity<POINTSPRITEVERTEX, false>
17  {
18  public:
19  static const int MAXPARTICLES = 500000;
20  public:
21  raParticleSystem(raSmartPointer<raDirectX> dx, raTexturedMaterial* mat, bool bAdditive = false,
22  float radius = 1.0f, float gravity = 1.0f, float Speed = 2.0f, float max_age = 0.0f);
23  virtual ~raParticleSystem(void);
24 
25  void AddParticles(int n, float x = 0, float y = 0, float z = 0);
26  void AddParticle(float x = 0, float y = 0, float z = 0,
27  float vx = 0, float vy = 0, float vz = 0);
28 
29  virtual bool RenderMesh(LPCSTR techniqueName = "");
30  virtual bool Update(float fTime, float fRunTime);
31 
32  protected:
33  virtual void SetupVertices();
34  private:
35  std::list<raParticle> m_Particles;
36 
37  raArray<raParticle> m_Particlesex;
38 
39  float m_radius;
40  float m_gravity;
41  float m_maxAge;
42  float m_speed;
43 
44  ID3DX11EffectMatrixVariable* m_pmInvView_ParticleSystem;
45  };
#define RAPI
Definition: raMain.h:11
raVector3 m_Acceleration
raVector3 m_Position
virtual bool Update(float fTime, float fRunTime)
Definition: raRender.h:17
interface ID3DX11EffectMatrixVariable ID3DX11EffectMatrixVariable
Definition: d3dx11effect.h:279
raVector3 m_Velocity
virtual void SetupVertices()=0
virtual bool RenderMesh(LPCSTR techniqueName="")
Definition: raEntity.h:188