SubModule.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // SubModule.h
  3. // cocos2d_libs
  4. //
  5. // Created by 徐俊杰 on 2020/4/24.
  6. //
  7. #ifndef SubModule_h
  8. #define SubModule_h
  9. //#include "cocos2d.h"
  10. #include "rparticle/Macros/RParticleMacros.h"
  11. #include "rparticle/Modules/ParticleSystemModule.h"
  12. //#include "Runtime/BaseClasses/BaseObject.h"
  13. NS_RRP_BEGIN
  14. class RParticleSystem;
  15. struct ParticleSystemParticles;
  16. class SubModule : public ParticleSystemModule
  17. {
  18. public:
  19. DECLARE_MODULE (SubModule)
  20. SubModule ();
  21. void Update (const ParticleSystemReadOnlyState& roState, ParticleSystemState& state, ParticleSystemParticles& ps, size_t fromIndex, size_t toIndex, float dt) const;
  22. /*
  23. void CheckConsistency() {};
  24. int GetSubEmitterTypeCount(ParticleSystemSubType type) const;
  25. template<class TransferFunction>
  26. void Transfer (TransferFunction& transfer);
  27. static void RemoveDuplicatePtrs (RParticleSystem** shurikens);
  28. int GetSubEmitterPtrs (RParticleSystem** shurikens) const;
  29. int GetSubEmitterPtrsBirth (RParticleSystem** shurikens) const;
  30. int GetSubEmitterPtrsCollision (RParticleSystem** shurikens) const;
  31. int GetSubEmitterPtrsDeath(RParticleSystem** shurikens) const;
  32. void SetSubEmittersBirthID(int index, int instanceID)
  33. {
  34. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  35. m_SubEmittersBirth[index].SetInstanceID(instanceID);
  36. }
  37. }
  38. int GetSubEmittersBirthID(int index)
  39. {
  40. int instanceID = -1;
  41. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  42. instanceID = m_SubEmittersBirth[index].GetInstanceID();
  43. }
  44. return instanceID;
  45. }
  46. void SetSubEmittersCollisionID(int index, int instanceID)
  47. {
  48. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  49. m_SubEmittersCollision[index].SetInstanceID(instanceID);
  50. }
  51. }
  52. int GetSubEmittersCollisionID(int index)
  53. {
  54. int instanceID = -1;
  55. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  56. instanceID = m_SubEmittersCollision[index].GetInstanceID();
  57. }
  58. return instanceID;
  59. }
  60. void SetSubEmittersDeathID(int index, int instanceID)
  61. {
  62. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  63. m_SubEmittersDeath[index].SetInstanceID(instanceID);
  64. }
  65. }
  66. int GetSubEmittersDeathID(int index)
  67. {
  68. int instanceID = -1;
  69. if (index >= 0 && index < kParticleSystemMaxSubBirth) {
  70. instanceID = m_SubEmittersDeath[index].GetInstanceID();
  71. }
  72. return instanceID;
  73. }
  74. private:
  75. PPtr<RParticleSystem> m_SubEmittersBirth[kParticleSystemMaxSubBirth];
  76. PPtr<RParticleSystem> m_SubEmittersCollision[kParticleSystemMaxSubCollision];
  77. PPtr<RParticleSystem> m_SubEmittersDeath[kParticleSystemMaxSubDeath];
  78. */
  79. };
  80. NS_RRP_END
  81. #endif /* SubModule_h */