diff options
Diffstat (limited to 'source/EditorCore.hpp')
-rw-r--r-- | source/EditorCore.hpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/source/EditorCore.hpp b/source/EditorCore.hpp index af35616..785fc6b 100644 --- a/source/EditorCore.hpp +++ b/source/EditorCore.hpp @@ -2,6 +2,7 @@ #include "EditorAttachment.hpp" #include "EditorCommandPalette.hpp" +#include "EditorUtils.hpp" #include "GameObject.hpp" #include "Ires.hpp" #include "RcPtr.hpp" @@ -55,16 +56,38 @@ public: void Show(bool* open = nullptr); }; +class EditorTransformEdit { +private: + ImGuizmo::OPERATION mCurrentGizmoOperation = ImGuizmo::TRANSLATE; + ImGuizmo::MODE mCurrentGizmoMode = ImGuizmo::LOCAL; + glm::mat4 cubeMatrix; + float snap[3] = { 1.f, 1.f, 1.f }; + float bounds[6] = { -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f }; + float boundsSnap[3] = { 0.1f, 0.1f, 0.1f }; + float camDistance = 8.f; + bool useSnap = false; + bool boundSizing = false; + bool boundSizingSnap = false; + bool showGrid = false; + +public: + void ShowWorld(float* cameraView, float* cameraProjection); + bool ShowObjectInspector(float* cameraView, float* cameraProjection, glm::vec3* pos, glm::quat* rotation, glm::vec3* scale); + bool ShowObject(float* cameraView, float* cameraProjection, glm::vec3* pos, glm::quat* rotation, glm::vec3* scale); +}; + class App; class EditorInstance { private: App* mApp; - GameWorld* mWorld; + RendererFrameInfo mFallbackFrameInfo; + const RendererFrameInfo* mCurrentFrameInfo; GameObject* mPopupCurrent_GameObject = nullptr; RcPtr<SpriteDefinition> mSpriteView_Instance; EditorCommandPalette mEdCommandPalette; EditorInspector mEdInspector; EditorContentBrowser mEdContentBrowser; + EditorTransformEdit mEdTransformEdit; int mSpriteView_Frame; bool mSpriteView_OpenNextFrame = false; bool mWindowVisible_ImGuiDemo = false; @@ -75,9 +98,11 @@ private: bool mWindowVisible_WorldProperties = true; public: - EditorInstance(App* app, GameWorld* world); + EditorInstance(App* app); ~EditorInstance(); + void OnUpdate(); + void OnDraw(const RendererFrameInfo& frameInfo); void Show(); EditorInspector& GetInspector() { return mEdInspector; } |