1 #include "..\include\raMain.h" 15 m_Position += m_Velocity * fTime * m_speed;
16 m_Velocity += m_Acceleration * fTime * m_speed;
23 float radius,
float gravity,
float Speed,
float max_age) :
raEntity(dx, mat, true, bAdditive)
46 std::list<raParticle>::iterator pParticle;
48 for(pParticle=m_Particles.begin(); pParticle != m_Particles.end(); pParticle++)
50 pVertex->
position = pParticle->m_Position;
51 pVertex->
color[0] = 1;
52 pVertex->
color[1] = 1;
53 pVertex->
color[2] = 1;
55 pVertex->
radius = m_radius;
56 pParticle->m_speed = m_speed;
63 std::list<raParticle>::iterator pParticle;
64 for(pParticle = m_Particles.begin();
65 pParticle != m_Particles.end();)
67 pParticle->Update(fTime);
68 if((m_maxAge > 0) && (pParticle->m_age > m_maxAge))
70 pParticle->m_Acceleration =
raVector3(0.0f);
72 pParticle->m_age = 0.0f;
73 pParticle = m_Particles.erase(pParticle);
87 memset(&updateBox, 0,
sizeof(D3D11_BOX));
99 if(m_Particles.size() > 0)
106 float x,
float y,
float z)
110 for(
int i = 0; i < n; i++)
117 p.
m_Velocity.
x = (((float)rand() / RAND_MAX) - 0.5f) * 0.1f;
119 p.
m_Velocity.
z = (((float)rand() / RAND_MAX) - 0.5f) * 0.1f;
123 m_Particles.push_back(p);
128 float vx,
float vy,
float vz)
143 m_Particles.push_back(p);
ID3D11DeviceContext * GetImmediateContext(void)
virtual bool RenderMesh(LPCSTR techniqueName="")
POINTSPRITEVERTEX * m_pVertices
void AddParticle(float x=0, float y=0, float z=0, float vx=0, float vy=0, float vz=0)
SDKMESH_SUBSET * m_pSubsets
raParticleSystem(raSmartPointer< raDirectX > dx, raTexturedMaterial *mat, bool bAdditive=false, float radius=1.0f, float gravity=1.0f, float Speed=2.0f, float max_age=0.0f)
static const int MAXPARTICLES
virtual bool Update(float fTime, float fRunTime)
void AddParticles(int n, float x=0, float y=0, float z=0)
virtual ~raParticleSystem(void)
virtual void SetupVertices()
raSmartPointer< raDirectX > m_dx
virtual bool RenderMesh(LPCSTR techniqueName="")