BsSceneEditorWidget.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsEditorWidget.h"
  4. namespace BansheeEngine
  5. {
  6. class SceneEditorWidget : public EditorWidget<SceneEditorWidget>
  7. {
  8. public:
  9. SceneEditorWidget(const ConstructPrivately& dummy, EditorWidgetContainer& parentContainer);
  10. virtual ~SceneEditorWidget();
  11. virtual void _update();
  12. static SceneEditorWidget* instance();
  13. static SceneEditorWidget* open();
  14. static void close();
  15. static const String& getTypeName();
  16. protected:
  17. void doOnResized(UINT32 width, UINT32 height);
  18. void doOnParentChanged();
  19. void determineParentWindow();
  20. void updateRenderTexture(UINT32 width, UINT32 height);
  21. void render(const Viewport* viewport, DrawList& drawList);
  22. bool toSceneViewPos(const Vector2I& screenPos, Vector2I& scenePos);
  23. /**
  24. * @brief Called whenever a pointer (e.g. mouse cursor) is moved.
  25. */
  26. void onPointerMoved(const PointerEvent& event);
  27. /**
  28. * @brief Called whenever a pointer button (e.g. mouse button) is released.
  29. */
  30. void onPointerReleased(const PointerEvent& event);
  31. /**
  32. * @brief Called whenever a pointer button (e.g. mouse button) is pressed.
  33. */
  34. void onPointerPressed(const PointerEvent& event);
  35. private:
  36. static SceneEditorWidget* Instance;
  37. RenderWindowPtr mParentWindow;
  38. RenderTexturePtr mSceneRenderTarget;
  39. GUIRenderTexture* mGUIRenderTexture;
  40. HCamera mCamera;
  41. SceneGrid* mSceneGrid;
  42. HEvent mRenderCallback;
  43. HEvent mOnPointerMovedConn;
  44. HEvent mOnPointerPressedConn;
  45. HEvent mOnPointerReleasedConn;
  46. };
  47. }