Added fixed step update

Switched back to defaulted operator=(ParticleEmitter&&) since it can't
throw exception anyway


Former-commit-id: 178b040a735ef01dcda21b45a317b6c534b5782e
This commit is contained in:
Lynix
2014-08-08 21:21:04 +02:00
parent 202f675301
commit 0976607eb9
2 changed files with 49 additions and 28 deletions

View File

@@ -35,6 +35,8 @@ class NAZARA_API NzParticleEmitter : public NzSceneNode, NzUpdatable
void* CreateParticle();
void* CreateParticles(unsigned int count);
void EnableFixedStep(bool fixedStep);
void* GenerateParticle();
void* GenerateParticles(unsigned int count);
@@ -49,6 +51,7 @@ class NAZARA_API NzParticleEmitter : public NzSceneNode, NzUpdatable
nzSceneNodeType GetSceneNodeType() const override;
bool IsDrawable() const;
bool IsFixedStepEnabled() const;
void KillParticle(unsigned int index);
void KillParticles();
@@ -58,10 +61,11 @@ class NAZARA_API NzParticleEmitter : public NzSceneNode, NzUpdatable
void SetEmissionCount(unsigned int count);
void SetEmissionRate(float rate);
void SetFixedStepSize(float step);
void SetRenderer(NzParticleRenderer* renderer);
NzParticleEmitter& operator=(const NzParticleEmitter& emitter);
NzParticleEmitter& operator=(NzParticleEmitter&& emitter);
NzParticleEmitter& operator=(NzParticleEmitter&& emitter) = default;
private:
void GenerateAABB() const;
@@ -79,9 +83,12 @@ class NAZARA_API NzParticleEmitter : public NzSceneNode, NzUpdatable
NzParticleDeclarationConstRef m_declaration;
NzParticleRendererRef m_renderer;
mutable bool m_boundingVolumeUpdated;
bool m_fixedStepEnabled;
bool m_processing;
float m_emissionAccumulator;
float m_emissionRate;
float m_stepAccumulator;
float m_stepSize;
unsigned int m_emissionCount;
unsigned int m_maxParticleCount;
unsigned int m_particleCount;