diff --git a/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp b/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp index e8c943c2..d0c71265 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp @@ -26,6 +26,8 @@ #include "Serialization/Configurations/SHConfigurationManager.h" #include "Editor/EditorWindow/SHEditorWindowManager.h" #include "Physics/System/SHPhysicsDebugDrawSystem.h" +#include "Camera/SHCameraSystem.h" +#include "Tools/Utilities/SHClipboardUtilities.h" const std::string LAYOUT_FOLDER_PATH{ std::string(ASSET_ROOT) + "/Editor/Layouts" }; @@ -154,7 +156,39 @@ namespace SHADE ImGui::PushStyleColor(ImGuiCol_WindowBg, ImGui::GetStyle().Colors[ImGuiCol_MenuBarBg]); if (ImGui::BeginViewportSideBar("MainStatusBar", ImGui::GetMainViewport(), ImGuiDir_Down, menuBarHeight, editorMenuBarFlags)) { - ImGui::Text("Entity count: %zu", SHEntityManager::GetEntityCount()); + auto camSystem = SHSystemManager::GetSystem(); + std::string editorCamPosText{}; + auto editorCam = camSystem->GetEditorCamera(); + if(editorCam) + { + auto editorCamPos = editorCam->GetPosition(); + editorCamPosText = std::format("Editor Cam [X: {:.3f}, Y: {:.3f}, Z: {:.3f}]", editorCamPos.x, editorCamPos.y, editorCamPos.z); + + //ImGui::Text(editorCamPosText.data()); + } + ImGui::Text("Entity count: %zu %s", SHEntityManager::GetEntityCount(), editorCamPosText.data()); + if(ImGui::BeginPopupContextItem("EditorCamPosContext")) + { + if(editorCam) + { + if(ImGui::Selectable("Copy Editor Cam Pos X")) + { + auto editorCamPos = editorCam->GetPosition(); + SHClipboardUtilities::WriteToClipboard(std::format("{:.3f}", editorCamPos.x)); + } + if (ImGui::Selectable("Copy Editor Cam Pos Y")) + { + auto editorCamPos = editorCam->GetPosition(); + SHClipboardUtilities::WriteToClipboard(std::format("{:.3f}", editorCamPos.y)); + } + if (ImGui::Selectable("Copy Editor Cam Pos Z")) + { + auto editorCamPos = editorCam->GetPosition(); + SHClipboardUtilities::WriteToClipboard(std::format("{:.3f}", editorCamPos.z)); + } + } + ImGui::EndPopup(); + } } ImGui::End(); ImGui::PopStyleColor();