using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Particles * @{ */ /// Settings used for controlling particle system GPU simulation. [ShowInInspector] public partial class ParticleGpuSimulationSettings : ScriptObject { private ParticleGpuSimulationSettings(bool __dummy0) { } protected ParticleGpuSimulationSettings() { } [ShowInInspector] [NotNull] [PassByCopy] [NativeWrapper] public ParticleVectorFieldSettings VectorField { get { return Internal_getvectorField(mCachedPtr); } set { Internal_setvectorField(mCachedPtr, value); } } /// Determines particle color, evaluated over the particle lifetime. [ShowInInspector] [NotNull] [PassByCopy] [NativeWrapper] public ColorDistribution ColorOverLifetime { get { return Internal_getcolorOverLifetime(mCachedPtr); } set { Internal_setcolorOverLifetime(mCachedPtr, value); } } /// /// Determines particle size, evaluated over the particle lifetime. Multiplied by the initial particle size. /// [ShowInInspector] [NotNull] [PassByCopy] [NativeWrapper] public Vector2Distribution SizeScaleOverLifetime { get { return Internal_getsizeScaleOverLifetime(mCachedPtr); } set { Internal_setsizeScaleOverLifetime(mCachedPtr, value); } } /// Constant acceleration to apply for each step of the simulation. [ShowInInspector] [NativeWrapper] public Vector3 Acceleration { get { Vector3 temp; Internal_getacceleration(mCachedPtr, out temp); return temp; } set { Internal_setacceleration(mCachedPtr, ref value); } } /// Amount of resistance to apply in the direction opposite of the particle's velocity. [ShowInInspector] [NativeWrapper] public float Drag { get { return Internal_getdrag(mCachedPtr); } set { Internal_setdrag(mCachedPtr, value); } } /// Settings controlling particle depth buffer collisions. [ShowInInspector] [NotNull] [PassByCopy] [NativeWrapper] public ParticleDepthCollisionSettings DepthCollision { get { return Internal_getdepthCollision(mCachedPtr); } set { Internal_setdepthCollision(mCachedPtr, value); } } [MethodImpl(MethodImplOptions.InternalCall)] private static extern ParticleVectorFieldSettings Internal_getvectorField(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setvectorField(IntPtr thisPtr, ParticleVectorFieldSettings value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern ColorDistribution Internal_getcolorOverLifetime(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setcolorOverLifetime(IntPtr thisPtr, ColorDistribution value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern Vector2Distribution Internal_getsizeScaleOverLifetime(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setsizeScaleOverLifetime(IntPtr thisPtr, Vector2Distribution value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_getacceleration(IntPtr thisPtr, out Vector3 __output); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setacceleration(IntPtr thisPtr, ref Vector3 value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_getdrag(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setdrag(IntPtr thisPtr, float value); [MethodImpl(MethodImplOptions.InternalCall)] private static extern ParticleDepthCollisionSettings Internal_getdepthCollision(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_setdepthCollision(IntPtr thisPtr, ParticleDepthCollisionSettings value); } /** @} */ }