// // ParticleCollisionEvents.h // cocos2d_libs // // Created by 徐俊杰 on 2020/4/24. // #ifndef ParticleCollisionEvents_h #define ParticleCollisionEvents_h //#include "cocos2d.h" #include "rparticle/Macros/RParticleMacros.h" #include "rparticle/Utilities/dynamic_array.h" NS_RRP_BEGIN struct ParticleCollisionEvent { ParticleCollisionEvent (const Vector3f& intersection, const Vector3f& normal, const Vector3f& velocity, int colliderInstanceID, int rigidBodyOrColliderInstanceID); Vector3f m_Intersection; Vector3f m_Normal; Vector3f m_Velocity; int m_ColliderInstanceID; int m_RigidBodyOrColliderInstanceID; // This can be a Collider or a RigidBody component }; struct MonoParticleCollisionEvent { Vector3f m_Intersection; Vector3f m_Normal; Vector3f m_Velocity; int m_ColliderInstanceID; }; struct CollisionEvents { CollisionEvents (); dynamic_array collisionEvents[2]; int currentCollisionEventThreadArray; void Clear (); bool AddEvent (const ParticleCollisionEvent& event); int GetCollisionEventCount () const; void SwapCollisionEventArrays (); void SortCollisionEventThreadArray (); // void SendCollisionEvents (Unity::Component& particleSystem) const; int GetCollisionEvents (int instanceId, MonoParticleCollisionEvent* collisionEvents, int size) const; dynamic_array& GetCollisionEventThreadArray (); const dynamic_array& GetCollisionEventScriptArray () const; }; NS_RRP_END #endif /* ParticleCollisionEvents_h */