BsScriptSceneViewHandler.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "BsScriptSceneViewHandler.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "BsSceneViewHandler.h"
  6. #include "BsScriptCameraHandler.h"
  7. #include "BsScriptEditorWindow.h"
  8. #include "BsEditorWidgetContainer.h"
  9. #include "BsEditorWindowBase.h"
  10. namespace BansheeEngine
  11. {
  12. ScriptSceneViewHandler::ScriptSceneViewHandler(MonoObject* object, const EditorWidgetBase* parentWidget, const SPtr<CameraHandler>& camera)
  13. :ScriptObject(object), mHandler(nullptr)
  14. {
  15. mHandler = bs_new<SceneViewHandler>(parentWidget, camera);
  16. }
  17. ScriptSceneViewHandler::~ScriptSceneViewHandler()
  18. {
  19. bs_delete(mHandler);
  20. }
  21. void ScriptSceneViewHandler::initRuntimeData()
  22. {
  23. metaData.scriptClass->addInternalCall("Internal_Create", &ScriptSceneViewHandler::internal_Create);
  24. metaData.scriptClass->addInternalCall("Internal_Update", &ScriptSceneViewHandler::internal_Update);
  25. metaData.scriptClass->addInternalCall("Internal_PointerPressed", &ScriptSceneViewHandler::internal_PointerPressed);
  26. metaData.scriptClass->addInternalCall("Internal_PointerReleased", &ScriptSceneViewHandler::internal_PointerReleased);
  27. }
  28. void ScriptSceneViewHandler::internal_Create(MonoObject* managedInstance, ScriptEditorWindow* parentWindow, ScriptCameraHandler* camera)
  29. {
  30. EditorWidgetBase* widget = parentWindow->getEditorWidget();
  31. new (bs_alloc<ScriptSceneViewHandler>()) ScriptSceneViewHandler(managedInstance, widget, camera->getInternal());
  32. }
  33. void ScriptSceneViewHandler::internal_Update(ScriptSceneViewHandler* thisPtr, Vector2I inputPos, Vector2I inputDelta)
  34. {
  35. thisPtr->mHandler->update(inputPos, inputDelta);
  36. }
  37. void ScriptSceneViewHandler::internal_PointerPressed(ScriptSceneViewHandler* thisPtr, Vector2I inputPos)
  38. {
  39. thisPtr->mHandler->pointerPressed(inputPos);
  40. }
  41. void ScriptSceneViewHandler::internal_PointerReleased(ScriptSceneViewHandler* thisPtr, Vector2I inputPos, bool controlPressed)
  42. {
  43. thisPtr->mHandler->pointerReleased(inputPos, controlPressed);
  44. }
  45. }