BsScriptHandleSliderDisc.cpp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptHandleSliderDisc.h"
  4. #include "BsScriptMeta.h"
  5. #include "BsMonoField.h"
  6. #include "BsMonoClass.h"
  7. #include "BsMonoManager.h"
  8. namespace BansheeEngine
  9. {
  10. ScriptHandleSliderDisc::ScriptHandleSliderDisc(MonoObject* instance, const Vector3& normal, float radius, bool fixedScale, UINT64 layer)
  11. :ScriptObject(instance), mSlider(nullptr)
  12. {
  13. mSlider = bs_new<HandleSliderDisc>(normal, radius, fixedScale, layer);
  14. }
  15. ScriptHandleSliderDisc::~ScriptHandleSliderDisc()
  16. {
  17. if (mSlider != nullptr)
  18. bs_delete(mSlider);
  19. }
  20. void ScriptHandleSliderDisc::destroyInternal()
  21. {
  22. if (mSlider != nullptr)
  23. bs_delete(mSlider);
  24. mSlider = nullptr;
  25. }
  26. void ScriptHandleSliderDisc::initRuntimeData()
  27. {
  28. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptHandleSliderDisc::internal_CreateInstance);
  29. metaData.scriptClass->addInternalCall("Internal_GetDelta", &ScriptHandleSliderDisc::internal_GetDelta);
  30. metaData.scriptClass->addInternalCall("Internal_GetStartAngle", &ScriptHandleSliderDisc::internal_GetStartAngle);
  31. metaData.scriptClass->addInternalCall("Internal_SetCutoffPlane", &ScriptHandleSliderDisc::internal_SetCutoffPlane);
  32. }
  33. void ScriptHandleSliderDisc::internal_CreateInstance(MonoObject* instance, Vector3* normal, float radius, bool fixedScale, UINT64 layer)
  34. {
  35. ScriptHandleSliderDisc* nativeInstance = new (bs_alloc<ScriptHandleSliderDisc>())
  36. ScriptHandleSliderDisc(instance, *normal, radius, fixedScale, layer);
  37. }
  38. void ScriptHandleSliderDisc::internal_GetDelta(ScriptHandleSliderDisc* nativeInstance, float* value)
  39. {
  40. *value = nativeInstance->mSlider->getDelta().valueDegrees();
  41. }
  42. void ScriptHandleSliderDisc::internal_GetStartAngle(ScriptHandleSliderDisc* nativeInstance, float* value)
  43. {
  44. *value = nativeInstance->mSlider->getStartAngle().valueDegrees();
  45. }
  46. void ScriptHandleSliderDisc::internal_SetCutoffPlane(ScriptHandleSliderDisc* nativeInstance, float value, bool enabled)
  47. {
  48. nativeInstance->mSlider->setCutoffPlane(Degree(value), enabled);
  49. }
  50. }