diff options
author | rtk0c <[email protected]> | 2022-04-30 13:55:20 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-04-30 13:55:20 -0700 |
commit | 453e1df6fb7a5847c8a5b26bd8479451091fb69d (patch) | |
tree | e0753be4c78535a3d2697c8b7be4123b76d2ad0d /source/EditorCore.hpp | |
parent | ac153a0a9463e3877fb0066e3603b6bf15fe6706 (diff) |
Changeset: 20 Add ImGuizmo for GameObjects, start to make things actually render
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; } |