ParticleCollisionEvents.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // ParticleCollisionEvents.h
  3. // cocos2d_libs
  4. //
  5. // Created by 徐俊杰 on 2020/4/24.
  6. //
  7. #ifndef ParticleCollisionEvents_h
  8. #define ParticleCollisionEvents_h
  9. //#include "cocos2d.h"
  10. #include "rparticle/Macros/RParticleMacros.h"
  11. #include "rparticle/Utilities/dynamic_array.h"
  12. NS_RRP_BEGIN
  13. struct ParticleCollisionEvent
  14. {
  15. ParticleCollisionEvent (const Vector3f& intersection, const Vector3f& normal, const Vector3f& velocity, int colliderInstanceID, int rigidBodyOrColliderInstanceID);
  16. Vector3f m_Intersection;
  17. Vector3f m_Normal;
  18. Vector3f m_Velocity;
  19. int m_ColliderInstanceID;
  20. int m_RigidBodyOrColliderInstanceID; // This can be a Collider or a RigidBody component
  21. };
  22. struct MonoParticleCollisionEvent
  23. {
  24. Vector3f m_Intersection;
  25. Vector3f m_Normal;
  26. Vector3f m_Velocity;
  27. int m_ColliderInstanceID;
  28. };
  29. struct CollisionEvents
  30. {
  31. CollisionEvents ();
  32. dynamic_array<ParticleCollisionEvent> collisionEvents[2];
  33. int currentCollisionEventThreadArray;
  34. void Clear ();
  35. bool AddEvent (const ParticleCollisionEvent& event);
  36. int GetCollisionEventCount () const;
  37. void SwapCollisionEventArrays ();
  38. void SortCollisionEventThreadArray ();
  39. // void SendCollisionEvents (Unity::Component& particleSystem) const;
  40. int GetCollisionEvents (int instanceId, MonoParticleCollisionEvent* collisionEvents, int size) const;
  41. dynamic_array<ParticleCollisionEvent>& GetCollisionEventThreadArray ();
  42. const dynamic_array<ParticleCollisionEvent>& GetCollisionEventScriptArray () const;
  43. };
  44. NS_RRP_END
  45. #endif /* ParticleCollisionEvents_h */