1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- //
- // 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<class TransferFunction>
- void Transfer (TransferFunction& transfer);
-
- private:
- ParticleSystemEmissionData m_EmissionData;
- };
- NS_RRP_END
- #endif /* EmissionModule_h */
|