using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace BansheeEngine
{
/** @addtogroup Particles
* @{
*/
/// Controls depth buffer collisions for GPU simulated particles.
[ShowInInspector]
public partial class ParticleDepthCollisionSettings : ScriptObject
{
private ParticleDepthCollisionSettings(bool __dummy0) { }
public ParticleDepthCollisionSettings()
{
Internal_ParticleDepthCollisionSettings(this);
}
/// Determines if depth collisions are enabled.
[ShowInInspector]
[NativeWrapper]
public bool Enabled
{
get { return Internal_getenabled(mCachedPtr); }
set { Internal_setenabled(mCachedPtr, value); }
}
///
/// Determines the elasticity (bounciness) of the particle collision. Lower values make the collision less bouncy and
/// higher values more.
///
[ShowInInspector]
[NativeWrapper]
public float Restitution
{
get { return Internal_getrestitution(mCachedPtr); }
set { Internal_setrestitution(mCachedPtr, value); }
}
///
/// Determines how much velocity should a particle lose after a collision, in percent of its current velocity. In range
/// [0, 1].
///
[ShowInInspector]
[NativeWrapper]
public float Dampening
{
get { return Internal_getdampening(mCachedPtr); }
set { Internal_setdampening(mCachedPtr, value); }
}
/// Scale which to apply to particle size in order to determine the collision radius.
[ShowInInspector]
[NativeWrapper]
public float RadiusScale
{
get { return Internal_getradiusScale(mCachedPtr); }
set { Internal_setradiusScale(mCachedPtr, value); }
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_ParticleDepthCollisionSettings(ParticleDepthCollisionSettings managedInstance);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool Internal_getenabled(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setenabled(IntPtr thisPtr, bool value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern float Internal_getrestitution(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setrestitution(IntPtr thisPtr, float value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern float Internal_getdampening(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setdampening(IntPtr thisPtr, float value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern float Internal_getradiusScale(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setradiusScale(IntPtr thisPtr, float value);
}
/** @} */
}