ParticleSystemSettings.generated.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using System.Runtime.InteropServices;
  4. namespace BansheeEngine
  5. {
  6. /** @addtogroup Particles
  7. * @{
  8. */
  9. /// <summary>Generic settings used for controlling a ParticleSystem.</summary>
  10. public partial class ParticleSystemSettings : ScriptObject
  11. {
  12. private ParticleSystemSettings(bool __dummy0) { }
  13. protected ParticleSystemSettings() { }
  14. /// <summary>Material to render the particles with.</summary>
  15. public RRef<Material> Material
  16. {
  17. get { return Internal_getmaterial(mCachedPtr); }
  18. set { Internal_setmaterial(mCachedPtr, value); }
  19. }
  20. /// <summary>Mesh used for representing individual particles when using the Mesh rendering mode.</summary>
  21. public RRef<Mesh> Mesh
  22. {
  23. get { return Internal_getmesh(mCachedPtr); }
  24. set { Internal_setmesh(mCachedPtr, value); }
  25. }
  26. /// <summary>
  27. /// If true the particle system will be simulated on the GPU. This allows much higher particle counts at lower
  28. /// performance cost. GPU simulation ignores any provided evolvers and instead uses ParticleGpuSimulationSettings to
  29. /// customize the GPU simulation.
  30. /// </summary>
  31. public bool GpuSimulation
  32. {
  33. get { return Internal_getgpuSimulation(mCachedPtr); }
  34. set { Internal_setgpuSimulation(mCachedPtr, value); }
  35. }
  36. /// <summary>Determines in which space are particles in.</summary>
  37. public ParticleSimulationSpace SimulationSpace
  38. {
  39. get { return Internal_getsimulationSpace(mCachedPtr); }
  40. set { Internal_setsimulationSpace(mCachedPtr, value); }
  41. }
  42. /// <summary>Determines how are particles oriented when rendering.</summary>
  43. public ParticleOrientation Orientation
  44. {
  45. get { return Internal_getorientation(mCachedPtr); }
  46. set { Internal_setorientation(mCachedPtr, value); }
  47. }
  48. /// <summary>
  49. /// Determines should the particles only be allowed to orient themselves around the Y axis, or freely. Ignored if using
  50. /// the Plane orientation mode.
  51. /// </summary>
  52. public bool OrientationLockY
  53. {
  54. get { return Internal_getorientationLockY(mCachedPtr); }
  55. set { Internal_setorientationLockY(mCachedPtr, value); }
  56. }
  57. /// <summary>
  58. /// Determines a plane to orient particles towards. Only used if particle orientation mode is set to
  59. /// ParticleOrientation::Plane.
  60. /// </summary>
  61. public Plane OrientationPlane
  62. {
  63. get
  64. {
  65. Plane temp;
  66. Internal_getorientationPlane(mCachedPtr, out temp);
  67. return temp;
  68. }
  69. set { Internal_setorientationPlane(mCachedPtr, ref value); }
  70. }
  71. /// <summary>
  72. /// Determines how (and if) are particles sorted. Sorting controls in what order are particles rendered. If GPU
  73. /// simulation is enabled only distance based sorting is supported.
  74. /// </summary>
  75. public ParticleSortMode SortMode
  76. {
  77. get { return Internal_getsortMode(mCachedPtr); }
  78. set { Internal_setsortMode(mCachedPtr, value); }
  79. }
  80. /// <summary>
  81. /// Determines the time period during which the system runs, in seconds. This effects evaluation of distributions with
  82. /// curves using particle system time for evaluation.
  83. /// </summary>
  84. public float Duration
  85. {
  86. get { return Internal_getduration(mCachedPtr); }
  87. set { Internal_setduration(mCachedPtr, value); }
  88. }
  89. /// <summary>Determines should the particle system time wrap around once it reaches its duration.</summary>
  90. public bool IsLooping
  91. {
  92. get { return Internal_getisLooping(mCachedPtr); }
  93. set { Internal_setisLooping(mCachedPtr, value); }
  94. }
  95. /// <summary>
  96. /// Determines the maximum number of particles that can ever be active in this system. This number is ignored if GPU
  97. /// simulation is enabled, and instead particle count is instead only limited by the size of the internal buffers (shared
  98. /// between all particle systems).
  99. /// </summary>
  100. public uint MaxParticles
  101. {
  102. get { return Internal_getmaxParticles(mCachedPtr); }
  103. set { Internal_setmaxParticles(mCachedPtr, value); }
  104. }
  105. /// <summary>
  106. /// Determines should an automatic seed be used for the internal random number generator. This ensures the particle
  107. /// system yields different results each time it is ran.
  108. /// </summary>
  109. public bool UseAutomaticSeed
  110. {
  111. get { return Internal_getuseAutomaticSeed(mCachedPtr); }
  112. set { Internal_setuseAutomaticSeed(mCachedPtr, value); }
  113. }
  114. /// <summary>
  115. /// Determines the seed to use for the internal random number generator. Allows you to guarantee identical behaviour
  116. /// between different runs. Only relevant if automatic seed is disabled.
  117. /// </summary>
  118. public uint ManualSeed
  119. {
  120. get { return Internal_getmanualSeed(mCachedPtr); }
  121. set { Internal_setmanualSeed(mCachedPtr, value); }
  122. }
  123. /// <summary>
  124. /// Determines should the particle system bounds be automatically calculated, or should the fixed value provided be used.
  125. /// Bounds are used primarily for culling purposes. Note that automatic bounds are not supported when GPU simulation is
  126. /// enabled.
  127. /// </summary>
  128. public bool UseAutomaticBounds
  129. {
  130. get { return Internal_getuseAutomaticBounds(mCachedPtr); }
  131. set { Internal_setuseAutomaticBounds(mCachedPtr, value); }
  132. }
  133. /// <summary>
  134. /// Custom bounds to use them <see cref="useAutomaticBounds"/> is disabled. The bounds are in the simulation space of the
  135. /// particle system.
  136. /// </summary>
  137. public AABox CustomBounds
  138. {
  139. get
  140. {
  141. AABox temp;
  142. Internal_getcustomBounds(mCachedPtr, out temp);
  143. return temp;
  144. }
  145. set { Internal_setcustomBounds(mCachedPtr, ref value); }
  146. }
  147. /// <summary>Determines how is each particle represented on the screen.</summary>
  148. public ParticleRenderMode RenderMode
  149. {
  150. get { return Internal_getrenderMode(mCachedPtr); }
  151. set { Internal_setrenderMode(mCachedPtr, value); }
  152. }
  153. [MethodImpl(MethodImplOptions.InternalCall)]
  154. private static extern RRef<Material> Internal_getmaterial(IntPtr thisPtr);
  155. [MethodImpl(MethodImplOptions.InternalCall)]
  156. private static extern void Internal_setmaterial(IntPtr thisPtr, RRef<Material> value);
  157. [MethodImpl(MethodImplOptions.InternalCall)]
  158. private static extern RRef<Mesh> Internal_getmesh(IntPtr thisPtr);
  159. [MethodImpl(MethodImplOptions.InternalCall)]
  160. private static extern void Internal_setmesh(IntPtr thisPtr, RRef<Mesh> value);
  161. [MethodImpl(MethodImplOptions.InternalCall)]
  162. private static extern bool Internal_getgpuSimulation(IntPtr thisPtr);
  163. [MethodImpl(MethodImplOptions.InternalCall)]
  164. private static extern void Internal_setgpuSimulation(IntPtr thisPtr, bool value);
  165. [MethodImpl(MethodImplOptions.InternalCall)]
  166. private static extern ParticleSimulationSpace Internal_getsimulationSpace(IntPtr thisPtr);
  167. [MethodImpl(MethodImplOptions.InternalCall)]
  168. private static extern void Internal_setsimulationSpace(IntPtr thisPtr, ParticleSimulationSpace value);
  169. [MethodImpl(MethodImplOptions.InternalCall)]
  170. private static extern ParticleOrientation Internal_getorientation(IntPtr thisPtr);
  171. [MethodImpl(MethodImplOptions.InternalCall)]
  172. private static extern void Internal_setorientation(IntPtr thisPtr, ParticleOrientation value);
  173. [MethodImpl(MethodImplOptions.InternalCall)]
  174. private static extern bool Internal_getorientationLockY(IntPtr thisPtr);
  175. [MethodImpl(MethodImplOptions.InternalCall)]
  176. private static extern void Internal_setorientationLockY(IntPtr thisPtr, bool value);
  177. [MethodImpl(MethodImplOptions.InternalCall)]
  178. private static extern void Internal_getorientationPlane(IntPtr thisPtr, out Plane __output);
  179. [MethodImpl(MethodImplOptions.InternalCall)]
  180. private static extern void Internal_setorientationPlane(IntPtr thisPtr, ref Plane value);
  181. [MethodImpl(MethodImplOptions.InternalCall)]
  182. private static extern ParticleSortMode Internal_getsortMode(IntPtr thisPtr);
  183. [MethodImpl(MethodImplOptions.InternalCall)]
  184. private static extern void Internal_setsortMode(IntPtr thisPtr, ParticleSortMode value);
  185. [MethodImpl(MethodImplOptions.InternalCall)]
  186. private static extern float Internal_getduration(IntPtr thisPtr);
  187. [MethodImpl(MethodImplOptions.InternalCall)]
  188. private static extern void Internal_setduration(IntPtr thisPtr, float value);
  189. [MethodImpl(MethodImplOptions.InternalCall)]
  190. private static extern bool Internal_getisLooping(IntPtr thisPtr);
  191. [MethodImpl(MethodImplOptions.InternalCall)]
  192. private static extern void Internal_setisLooping(IntPtr thisPtr, bool value);
  193. [MethodImpl(MethodImplOptions.InternalCall)]
  194. private static extern uint Internal_getmaxParticles(IntPtr thisPtr);
  195. [MethodImpl(MethodImplOptions.InternalCall)]
  196. private static extern void Internal_setmaxParticles(IntPtr thisPtr, uint value);
  197. [MethodImpl(MethodImplOptions.InternalCall)]
  198. private static extern bool Internal_getuseAutomaticSeed(IntPtr thisPtr);
  199. [MethodImpl(MethodImplOptions.InternalCall)]
  200. private static extern void Internal_setuseAutomaticSeed(IntPtr thisPtr, bool value);
  201. [MethodImpl(MethodImplOptions.InternalCall)]
  202. private static extern uint Internal_getmanualSeed(IntPtr thisPtr);
  203. [MethodImpl(MethodImplOptions.InternalCall)]
  204. private static extern void Internal_setmanualSeed(IntPtr thisPtr, uint value);
  205. [MethodImpl(MethodImplOptions.InternalCall)]
  206. private static extern bool Internal_getuseAutomaticBounds(IntPtr thisPtr);
  207. [MethodImpl(MethodImplOptions.InternalCall)]
  208. private static extern void Internal_setuseAutomaticBounds(IntPtr thisPtr, bool value);
  209. [MethodImpl(MethodImplOptions.InternalCall)]
  210. private static extern void Internal_getcustomBounds(IntPtr thisPtr, out AABox __output);
  211. [MethodImpl(MethodImplOptions.InternalCall)]
  212. private static extern void Internal_setcustomBounds(IntPtr thisPtr, ref AABox value);
  213. [MethodImpl(MethodImplOptions.InternalCall)]
  214. private static extern ParticleRenderMode Internal_getrenderMode(IntPtr thisPtr);
  215. [MethodImpl(MethodImplOptions.InternalCall)]
  216. private static extern void Internal_setrenderMode(IntPtr thisPtr, ParticleRenderMode value);
  217. }
  218. /** @} */
  219. }