diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Graphics/ParticleSystem/Modules/SubModule.h |
Diffstat (limited to 'Runtime/Graphics/ParticleSystem/Modules/SubModule.h')
-rw-r--r-- | Runtime/Graphics/ParticleSystem/Modules/SubModule.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Runtime/Graphics/ParticleSystem/Modules/SubModule.h b/Runtime/Graphics/ParticleSystem/Modules/SubModule.h new file mode 100644 index 0000000..093c8ba --- /dev/null +++ b/Runtime/Graphics/ParticleSystem/Modules/SubModule.h @@ -0,0 +1,38 @@ +#ifndef SHURIKENMODULESUB_H +#define SHURIKENMODULESUB_H + +#include "ParticleSystemModule.h" +#include "Runtime/BaseClasses/BaseObject.h" + +class ParticleSystem; +struct ParticleSystemParticles; + + +class SubModule : public ParticleSystemModule +{ +public: + DECLARE_MODULE (SubModule) + SubModule (); + + void Update (const ParticleSystemReadOnlyState& roState, ParticleSystemState& state, ParticleSystemParticles& ps, size_t fromIndex, size_t toIndex, float dt) const; + void CheckConsistency() {}; + + int GetSubEmitterTypeCount(ParticleSystemSubType type) const; + + template<class TransferFunction> + void Transfer (TransferFunction& transfer); + + static void RemoveDuplicatePtrs (ParticleSystem** shurikens); + int GetSubEmitterPtrs (ParticleSystem** shurikens) const; + int GetSubEmitterPtrsBirth (ParticleSystem** shurikens) const; + int GetSubEmitterPtrsCollision (ParticleSystem** shurikens) const; + int GetSubEmitterPtrsDeath(ParticleSystem** shurikens) const; + + +private: + PPtr<ParticleSystem> m_SubEmittersBirth[kParticleSystemMaxSubBirth]; + PPtr<ParticleSystem> m_SubEmittersCollision[kParticleSystemMaxSubCollision]; + PPtr<ParticleSystem> m_SubEmittersDeath[kParticleSystemMaxSubDeath]; +}; + +#endif // SHURIKENMODULESUB_H |