// // EmissionModule.h // libcocos2d Mac // // Created by 徐俊杰 on 2020/4/24. // #ifndef EmissionModule_h #define EmissionModule_h //#include "cocos2d.h" #include "rparticle/Macros/RParticleMacros.h" #include "rparticle/Modules/ParticleSystemModule.h" #include "rparticle/ParticleSystemCurves.h" NS_RRP_BEGIN //class Vector2f; class EmissionModule : public ParticleSystemModule { public: DECLARE_MODULE (EmissionModule) EmissionModule (); enum { kEmissionTypeTime, kEmissionTypeDistance }; static void Emit (const ParticleSystemReadOnlyState& roState, 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; } const ParticleSystemEmissionData& GetEmissionData() const { return m_EmissionData; } template void Transfer (TransferFunction& transfer); private: ParticleSystemEmissionData m_EmissionData; }; NS_RRP_END #endif /* EmissionModule_h */