0ad/source/tools/ape/ext/ParticleSystem.cpp
janwas b755ddefda remove all author/modified by tags.
make include guards consistent.

This was SVN commit r5040.
2007-05-07 16:33:24 +00:00

67 lines
1.2 KiB
C++

/*==================================================================
|
| Name: ParticleSystem.cpp
|
|===================================================================
|
==================================================================*/
#include "ParticleSystem.h"
#include <assert.h>
CParticleSystem::CParticleSystem()
{
}
CParticleSystem::~CParticleSystem()
{
}
void CParticleSystem::Render()
{
CParticleEmitter * curEmitter = NULL;
std::vector<CParticleEmitter *>::iterator itor = m_Emitters.begin();
while (itor != m_Emitters.end())
{
curEmitter = (*itor);
curEmitter->Render();
itor++;
}
}
void CParticleSystem::Update()
{
CParticleEmitter * curEmitter = NULL;
std::vector<CParticleEmitter *>::iterator itor = m_Emitters.begin();
while (itor != m_Emitters.end())
{
curEmitter = (*itor);
curEmitter->Update();
if (curEmitter->IsFinished()) {
m_Emitters.erase(itor);
delete curEmitter;
}
++itor;
}
}
void CParticleSystem::Frame()
{
Render();
Update();
}
CParticleEmitter * CParticleSystem::CreateNewEmitter()
{
CParticleEmitter *newEmitter = new CParticleEmitter;
assert(newEmitter);
m_Emitters.push_back(newEmitter);
return newEmitter;
}