BsScriptSceneGizmos.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Wrappers/BsScriptSceneGizmos.h"
  4. #include "Scene/BsGizmoManager.h"
  5. #include "BsScriptGizmoManager.h"
  6. #include "Components/BsCCamera.h"
  7. #include "BsScriptCCamera.generated.h"
  8. namespace bs
  9. {
  10. ScriptSceneGizmos::ScriptSceneGizmos(MonoObject* object, const SPtr<Camera>& camera)
  11. :ScriptObject(object), mCamera(camera)
  12. {
  13. }
  14. ScriptSceneGizmos::~ScriptSceneGizmos()
  15. {
  16. if (GizmoManager::isStarted()) // If not active, we don't care
  17. GizmoManager::instance().clearRenderData();
  18. }
  19. void ScriptSceneGizmos::initRuntimeData()
  20. {
  21. metaData.scriptClass->addInternalCall("Internal_Create", (void*)&ScriptSceneGizmos::internal_Create);
  22. metaData.scriptClass->addInternalCall("Internal_Draw", (void*)&ScriptSceneGizmos::internal_Draw);
  23. }
  24. void ScriptSceneGizmos::internal_Create(MonoObject* managedInstance, ScriptCCamera* camera)
  25. {
  26. new (bs_alloc<ScriptSceneGizmos>()) ScriptSceneGizmos(managedInstance, camera->getHandle()->_getCamera());
  27. }
  28. void ScriptSceneGizmos::internal_Draw(ScriptSceneGizmos* thisPtr)
  29. {
  30. ScriptGizmoManager::instance().update();
  31. GizmoManager::instance().update(thisPtr->mCamera);
  32. }
  33. }