Changed SHEditor.hpp to .h
Handle editor camera update when interacting with viewport window only
This commit is contained in:
parent
534aeba06b
commit
d9584a0e39
|
@ -4,7 +4,7 @@
|
|||
|
||||
//#define SHEDITOR
|
||||
#ifdef SHEDITOR
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
//#include "Scenes/SBEditorScene.h"
|
||||
#endif // SHEDITOR
|
||||
|
||||
|
@ -94,7 +94,7 @@ namespace Sandbox
|
|||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::BatcherDispatcherRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::BeginRoutine>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHCameraSystem, SHCameraSystem::EditorCameraUpdate>();
|
||||
//SHSystemManager::RegisterRoutine<SHCameraSystem, SHCameraSystem::EditorCameraUpdate>();
|
||||
SHSystemManager::RegisterRoutine<SHCameraSystem, SHCameraSystem::CameraSystemUpdate>();
|
||||
|
||||
#ifdef SHEDITOR
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
//#==============================================================#
|
||||
//|| SHADE Includes ||
|
||||
//#==============================================================#
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "Editor/SHImGuiHelpers.hpp"
|
||||
#include "Editor/SHEditorWidgets.hpp"
|
||||
#include "SHHierarchyPanel.h"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "SHpch.h"
|
||||
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "SHEditorInspector.h"
|
||||
|
||||
#include "ECS_Base/SHECSMacros.h"
|
||||
|
@ -92,11 +92,15 @@ namespace SHADE
|
|||
DrawAddComponentButton<SHTransformComponent>(eid);
|
||||
DrawAddComponentButton<SHRenderable>(eid);
|
||||
DrawAddComponentButton<SHColliderComponent>(eid);
|
||||
if(DrawAddComponentButton<SHRigidBodyComponent>(eid))
|
||||
if (!SHComponentManager::HasComponent<SHRigidBodyComponent>(eid))
|
||||
{
|
||||
if(SHComponentManager::GetComponent_s<SHTransformComponent>(eid) == nullptr)
|
||||
if (ImGui::Selectable(std::format("Add {}", rttr::type::get<SHRigidBodyComponent>().get_name().data()).data()))
|
||||
{
|
||||
SHComponentManager::AddComponent<SHTransformComponent>(eid);
|
||||
if (SHComponentManager::GetComponent_s<SHTransformComponent>(eid) == nullptr)
|
||||
{
|
||||
SHComponentManager::AddComponent<SHTransformComponent>(eid);
|
||||
}
|
||||
SHComponentManager::AddComponent<SHRigidBodyComponent>(eid);
|
||||
}
|
||||
}
|
||||
ImGui::EndMenu();
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//#==============================================================#
|
||||
//|| SHADE Includes ||
|
||||
//#==============================================================#
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "SHEditorMenuBar.h"
|
||||
#include "Editor/IconsMaterialDesign.h"
|
||||
#include "Editor/Command/SHCommandManager.h"
|
||||
|
|
|
@ -5,13 +5,15 @@
|
|||
#include "ImGuizmo.h"
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
#include "Editor/IconsMaterialDesign.h"
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "Editor/EditorWindow/HierarchyPanel/SHHierarchyPanel.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h"
|
||||
#include "Graphics/Descriptors/SHVkDescriptorSetGroup.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHMousePickSystem.h"
|
||||
#include <Editor/IconsFontAwesome6.h>
|
||||
|
||||
#include "Camera/SHCameraSystem.h"
|
||||
|
||||
constexpr std::string_view windowName = "\xef\x80\x95 Viewport";
|
||||
|
||||
namespace SHADE
|
||||
|
@ -25,6 +27,8 @@ namespace SHADE
|
|||
{
|
||||
SHEditorWindow::Init();
|
||||
transformGizmo.Init();
|
||||
auto camSystem = SHSystemManager::GetSystem<SHCameraSystem>();
|
||||
camSystem->UpdateEditorCamera(0.016f);
|
||||
}
|
||||
|
||||
void SHEditorViewport::Update()
|
||||
|
@ -51,6 +55,24 @@ namespace SHADE
|
|||
ImGui::PushStyleColor(ImGuiCol_Text, ImGuiColors::green);
|
||||
ImGui::Text(ICON_FA_EYE);
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
auto camSystem = SHSystemManager::GetSystem<SHCameraSystem>();
|
||||
camSystem->UpdateEditorCamera(0.016f);
|
||||
}
|
||||
if(ImGui::IsWindowFocused() && !ImGui::IsMouseDown(ImGuiMouseButton_Right))
|
||||
{
|
||||
if(ImGui::IsKeyReleased(ImGuiKey_Q))
|
||||
{
|
||||
transformGizmo.operation = SHTransformGizmo::Operation::TRANSLATE;
|
||||
}
|
||||
if(ImGui::IsKeyReleased(ImGuiKey_W))
|
||||
{
|
||||
transformGizmo.operation = SHTransformGizmo::Operation::ROTATE;
|
||||
}
|
||||
if(ImGui::IsKeyReleased(ImGuiKey_E))
|
||||
{
|
||||
transformGizmo.operation = SHTransformGizmo::Operation::SCALE;
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGuizmo::SetRect(beginCursorPos.x , beginCursorPos.y, beginContentRegionAvailable.x, beginContentRegionAvailable.y);
|
||||
|
@ -77,6 +99,8 @@ namespace SHADE
|
|||
beginContentRegionAvailable = windowSize;
|
||||
}
|
||||
gfxSystem->PrepareResize(static_cast<uint32_t>(beginContentRegionAvailable.x), static_cast<uint32_t>(beginContentRegionAvailable.y));
|
||||
auto camSystem = SHSystemManager::GetSystem<SHCameraSystem>();
|
||||
camSystem->UpdateEditorCamera(0.016f);
|
||||
}
|
||||
|
||||
void SHEditorViewport::OnPosChange()
|
||||
|
@ -88,6 +112,7 @@ namespace SHADE
|
|||
{
|
||||
if(ImGui::BeginMenuBar())
|
||||
{
|
||||
ImGui::BeginDisabled(ImGui::IsWindowFocused() && ImGui::IsMouseDown(ImGuiMouseButton_Right));
|
||||
bool const isTranslate = transformGizmo.operation == SHTransformGizmo::Operation::TRANSLATE;
|
||||
ImGui::BeginDisabled(isTranslate);
|
||||
if(isTranslate)
|
||||
|
@ -97,6 +122,12 @@ namespace SHADE
|
|||
transformGizmo.operation = SHTransformGizmo::Operation::TRANSLATE;
|
||||
}
|
||||
ImGui::EndDisabled();
|
||||
if(ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled))
|
||||
{
|
||||
ImGui::BeginTooltip();
|
||||
ImGui::Text("Translate [Q]");
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
if(isTranslate)
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
|
@ -109,6 +140,12 @@ namespace SHADE
|
|||
transformGizmo.operation = SHTransformGizmo::Operation::ROTATE;
|
||||
}
|
||||
ImGui::EndDisabled();
|
||||
if(ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled))
|
||||
{
|
||||
ImGui::BeginTooltip();
|
||||
ImGui::Text("Rotate [W]");
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
if(isRotate)
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
|
@ -121,9 +158,15 @@ namespace SHADE
|
|||
transformGizmo.operation = SHTransformGizmo::Operation::SCALE;
|
||||
}
|
||||
ImGui::EndDisabled();
|
||||
if(ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled))
|
||||
{
|
||||
ImGui::BeginTooltip();
|
||||
ImGui::Text("Scale [E]");
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
if(isScale)
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
ImGui::EndDisabled();
|
||||
ImGui::EndMenuBar();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "ECS_Base/Managers/SHComponentManager.h"
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "Editor/SHImGuiHelpers.hpp"
|
||||
#include <imgui.h>
|
||||
#include <ImGuizmo.h>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include "Graphics/MiddleEnd/Interface/SHViewport.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHRenderer.h"
|
||||
|
||||
#include "SHEditor.hpp"
|
||||
#include "SHEditor.h"
|
||||
#include "SHEditorWidgets.hpp"
|
||||
|
||||
#include "Math/Transform/SHTransformSystem.h"
|
||||
|
|
|
@ -17,7 +17,7 @@ of DigiPen Institute of Technology is prohibited.
|
|||
#include "Graphics/Windowing/Surface/SHVkSurface.h"
|
||||
#include "Graphics/Swapchain/SHVkSwapchain.h"
|
||||
#include "Camera/SHCameraSystem.h"
|
||||
#include "Editor/SHEditor.hpp"
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
//#include "SHRenderer.h"
|
||||
#include "Graphics/Windowing/SHWindow.h"
|
||||
|
|
Loading…
Reference in New Issue