blob: 75ad977a684aa433afcc2a2f4352aec96006a534 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef SHURIKENMODULEEMISSION_H
#define SHURIKENMODULEEMISSION_H
#include "ParticleSystemModule.h"
#include "Runtime/Graphics/ParticleSystem/ParticleSystemCurves.h"
class Vector2f;
class EmissionModule : public ParticleSystemModule
{
public:
DECLARE_MODULE (EmissionModule)
EmissionModule ();
enum { kEmissionTypeTime, kEmissionTypeDistance };
static void Emit (ParticleSystemEmissionState& emissionState, size_t& amountOfParticlesToEmit, size_t& numContinuous, const ParticleSystemEmissionData& emissionData, const Vector3f velocity, float fromT, float toT, float dt, float length);
void CheckConsistency ();
int CalculateMaximumEmitCountEstimate(float deltaTime) const;
const ParticleSystemEmissionData& GetEmissionDataRef() { return m_EmissionData; }
const ParticleSystemEmissionData& GetEmissionDataRef() const { return m_EmissionData; }
void GetEmissionDataCopy(ParticleSystemEmissionData* emissionData) { *emissionData = m_EmissionData; };
ParticleSystemEmissionData& GetEmissionData() { return m_EmissionData; }
template<class TransferFunction>
void Transfer (TransferFunction& transfer);
private:
ParticleSystemEmissionData m_EmissionData;
};
#endif // SHURIKENMODULEEMISSION_H
|