ParticleSystemSettings.generated.cs 10 KB

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