HandleSliderDisc.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. public sealed class HandleSliderDisc : HandleSlider
  7. {
  8. public HandleSliderDisc(Handle parentHandle, Vector3 normal, float radius, bool fixedScale = true)
  9. :base(parentHandle)
  10. {
  11. Internal_CreateInstance(this, normal, radius, fixedScale);
  12. }
  13. public Degree Delta
  14. {
  15. get
  16. {
  17. float value;
  18. Internal_GetDelta(mCachedPtr, out value);
  19. return value;
  20. }
  21. }
  22. public Degree StartAngle
  23. {
  24. get
  25. {
  26. float value;
  27. Internal_GetStartAngle(mCachedPtr, out value);
  28. return value;
  29. }
  30. }
  31. public void SetCutoffPlane(Degree angle, bool enabled)
  32. {
  33. Internal_SetCutoffPlane(mCachedPtr, angle.Degrees, enabled);
  34. }
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. private static extern void Internal_CreateInstance(HandleSliderDisc instance, Vector3 normal, float radius, bool fixedScale);
  37. [MethodImpl(MethodImplOptions.InternalCall)]
  38. private static extern void Internal_GetDelta(IntPtr nativeInstance, out float value);
  39. [MethodImpl(MethodImplOptions.InternalCall)]
  40. private static extern void Internal_GetStartAngle(IntPtr nativeInstance, out float value);
  41. [MethodImpl(MethodImplOptions.InternalCall)]
  42. private static extern void Internal_SetCutoffPlane(IntPtr nativeInstance, float angle, bool enabled);
  43. }
  44. }