using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace BansheeEngine
{
/** @addtogroup Physics
* @{
*/
///
/// Joint that removes all but a single translational degree of freedom. Bodies are allowed to move along a single axis.
///
public partial class SliderJoint : Joint
{
private SliderJoint(bool __dummy0) { }
protected SliderJoint() { }
/// Returns the current position of the slider.
[ShowInInspector]
public float Position
{
get { return Internal_getPosition(mCachedPtr); }
}
/// Returns the current speed of the slider.
[ShowInInspector]
public float Speed
{
get { return Internal_getSpeed(mCachedPtr); }
}
///
/// Determines a limit that constrains the movement of the joint to a specific minimum and maximum distance. You must
/// enable the limit flag on the joint in order for this to be recognized.
///
[ShowInInspector]
public LimitLinearRange Limit
{
get
{
LimitLinearRange temp;
Internal_getLimit(mCachedPtr, out temp);
return temp;
}
set { Internal_setLimit(mCachedPtr, ref value); }
}
/// Enables or disables a flag that controls the joint's behaviour.
public void SetFlag(SliderJointFlag flag, bool enabled)
{
Internal_setFlag(mCachedPtr, flag, enabled);
}
/// Checks is the specified flag enabled.
public bool HasFlag(SliderJointFlag flag)
{
return Internal_hasFlag(mCachedPtr, flag);
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern float Internal_getPosition(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern float Internal_getSpeed(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_getLimit(IntPtr thisPtr, out LimitLinearRange __output);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setLimit(IntPtr thisPtr, ref LimitLinearRange limit);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setFlag(IntPtr thisPtr, SliderJointFlag flag, bool enabled);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool Internal_hasFlag(IntPtr thisPtr, SliderJointFlag flag);
}
/** @} */
}