BsScriptGizmos.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "BsScriptGizmos.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoClass.h"
  4. #include "BsScriptSpriteTexture.h"
  5. #include "BsSpriteTexture.h"
  6. #include "BsGizmoManager.h"
  7. namespace BansheeEngine
  8. {
  9. void ScriptGizmos::initRuntimeData()
  10. {
  11. metaData.scriptClass->addInternalCall("Internal_SetColor", &ScriptGizmos::internal_SetColor);
  12. metaData.scriptClass->addInternalCall("Internal_SetTransform", &ScriptGizmos::internal_SetTransform);
  13. metaData.scriptClass->addInternalCall("Internal_DrawCube", &ScriptGizmos::internal_DrawCube);
  14. metaData.scriptClass->addInternalCall("Internal_DrawSphere", &ScriptGizmos::internal_DrawSphere);
  15. metaData.scriptClass->addInternalCall("Internal_DrawWireCube", &ScriptGizmos::internal_DrawWireCube);
  16. metaData.scriptClass->addInternalCall("Internal_DrawWireSphere", &ScriptGizmos::internal_DrawWireSphere);
  17. metaData.scriptClass->addInternalCall("Internal_DrawLine", &ScriptGizmos::internal_DrawLine);
  18. metaData.scriptClass->addInternalCall("Internal_DrawFrustum", &ScriptGizmos::internal_DrawFrustum);
  19. metaData.scriptClass->addInternalCall("Internal_DrawIcon", &ScriptGizmos::internal_DrawIcon);
  20. }
  21. void internal_SetColor(Color color)
  22. {
  23. GizmoManager::instance().setColor(color);
  24. }
  25. void internal_SetTransform(Matrix4 transform)
  26. {
  27. GizmoManager::instance().setTransform(transform);
  28. }
  29. void internal_DrawCube(Vector3 position, Vector3 extents)
  30. {
  31. GizmoManager::instance().drawCube(position, extents);
  32. }
  33. void internal_DrawSphere(Vector3 position, float radius)
  34. {
  35. GizmoManager::instance().drawSphere(position, radius);
  36. }
  37. void internal_DrawWireCube(Vector3 position, Vector3 extents)
  38. {
  39. GizmoManager::instance().drawWireCube(position, extents);
  40. }
  41. void internal_DrawWireSphere(Vector3 position, float radius)
  42. {
  43. GizmoManager::instance().drawWireSphere(position, radius);
  44. }
  45. void internal_DrawLine(Vector3 start, Vector3 end)
  46. {
  47. GizmoManager::instance().drawLine(start, end);
  48. }
  49. void internal_DrawFrustum(Vector3 position, float aspect, Degree FOV, float near, float far)
  50. {
  51. GizmoManager::instance().drawFrustum(position, aspect, FOV, near, far);
  52. }
  53. void ScriptGizmos::internal_DrawIcon(Vector3 position, MonoObject* image, bool fixedScale)
  54. {
  55. HSpriteTexture nativeTexture;
  56. if (image != nullptr)
  57. nativeTexture = ScriptSpriteTexture::toNative(image)->getInternalValue();
  58. GizmoManager::instance().drawIcon(position, nativeTexture, fixedScale);
  59. }
  60. }