BsScriptHandleSliderDisc.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "BsScriptHandleSliderDisc.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. namespace BansheeEngine
  7. {
  8. ScriptHandleSliderDisc::ScriptHandleSliderDisc(MonoObject* instance, const Vector3& normal, float radius, bool fixedScale)
  9. :ScriptObject(instance), mSlider(nullptr)
  10. {
  11. mSlider = bs_new<HandleSliderDisc>(normal, radius, fixedScale);
  12. }
  13. ScriptHandleSliderDisc::~ScriptHandleSliderDisc()
  14. {
  15. if (mSlider != nullptr)
  16. bs_delete(mSlider);
  17. }
  18. void ScriptHandleSliderDisc::destroyInternal()
  19. {
  20. if (mSlider != nullptr)
  21. bs_delete(mSlider);
  22. mSlider = nullptr;
  23. }
  24. void ScriptHandleSliderDisc::initRuntimeData()
  25. {
  26. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptHandleSliderDisc::internal_CreateInstance);
  27. metaData.scriptClass->addInternalCall("Internal_GetDelta", &ScriptHandleSliderDisc::internal_GetDelta);
  28. metaData.scriptClass->addInternalCall("Internal_GetStartAngle", &ScriptHandleSliderDisc::internal_GetStartAngle);
  29. }
  30. void ScriptHandleSliderDisc::internal_CreateInstance(MonoObject* instance, Vector3 normal, float radius, bool fixedScale)
  31. {
  32. ScriptHandleSliderDisc* nativeInstance = new (bs_alloc<ScriptHandleSliderDisc>())
  33. ScriptHandleSliderDisc(instance, normal, radius, fixedScale);
  34. }
  35. void ScriptHandleSliderDisc::internal_GetDelta(ScriptHandleSliderDisc* nativeInstance, float* value)
  36. {
  37. *value = nativeInstance->mSlider->getDelta().valueDegrees();
  38. }
  39. void ScriptHandleSliderDisc::internal_GetStartAngle(ScriptHandleSliderDisc* nativeInstance, float* value)
  40. {
  41. *value = nativeInstance->mSlider->getStartAngle().valueDegrees();
  42. }
  43. }