PARTICLE_COLLISIONS_DESC.generated.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using System.Runtime.InteropServices;
  4. namespace BansheeEngine
  5. {
  6. /** @addtogroup Particles
  7. * @{
  8. */
  9. /// <summary>Structure used for initializing a ParticleCollisions object.</summary>
  10. [StructLayout(LayoutKind.Sequential), SerializeObject]
  11. public partial struct ParticleCollisionsOptions
  12. {
  13. /// <summary>Initializes the struct with default values.</summary>
  14. public static ParticleCollisionsOptions Default()
  15. {
  16. ParticleCollisionsOptions value = new ParticleCollisionsOptions();
  17. value.mode = ParticleCollisionMode.Plane;
  18. value.restitution = 1f;
  19. value.dampening = 0.5f;
  20. value.lifetimeLoss = 0f;
  21. value.radius = 0.00999999977f;
  22. value.layer = 18446744073709551615;
  23. return value;
  24. }
  25. /// <summary>Collision mode determining with which geometry the particles will interact with.</summary>
  26. public ParticleCollisionMode mode;
  27. /// <summary>
  28. /// Determines the elasticity (bounciness) of the particle collision. Lower values make the collision less bouncy and
  29. /// higher values more.
  30. /// </summary>
  31. public float restitution;
  32. /// <summary>
  33. /// Determines how much velocity should a particle lose after a collision, in percent of its current velocity. In range
  34. /// [0, 1].
  35. /// </summary>
  36. public float dampening;
  37. /// <summary>
  38. /// Determines how much should the particle lifetime be reduced after a collision, in percent of its original lifetime.
  39. /// In range [0, 1].
  40. /// </summary>
  41. public float lifetimeLoss;
  42. /// <summary>Radius of every individual particle used for collisions, in meters.</summary>
  43. public float radius;
  44. /// <summary>
  45. /// Physics layers that determine which objects will particle collide with. Only relevant when using the World collision
  46. /// mode.
  47. /// </summary>
  48. public ulong layer;
  49. }
  50. /** @} */
  51. }