Files
Nuake-custom/Editor/src/Windows/PrefabEditor/PrefabEditorWindow.h
2024-12-01 02:10:31 -05:00

53 lines
1.1 KiB
C++

#pragma once
#include "src/Core/Core.h"
#include "src/Core/Maths.h"
#include "../EditorSelectionPanel.h"
#include <src/Vendors/imgui/ImGuizmo.h>
namespace Nuake
{
class Prefab;
class Scene;
class FrameBuffer;
class Texture;
class Entity;
}
class PrefabEditorWindow
{
public:
PrefabEditorWindow(Ref<Nuake::Prefab> prefab);
~PrefabEditorWindow() {
ASSERT(false);
};
void Update(float ts);
void Draw();
private:
Ref<Nuake::Prefab> prefab;
Ref<Nuake::Scene> virtualScene;
Ref<Nuake::FrameBuffer> viewportFramebuffer;
Ref<Nuake::Texture> viewportTexture;
bool isViewportFocused;
bool isHoveringViewport;
bool isRenaming;
bool isInitialized = false;
Scope<EditorSelectionPanel> SelectionPanel;
EditorSelection Selection;
Nuake::Entity QueueDeletion;
ImGuizmo::OPERATION CurrentOperation = ImGuizmo::TRANSLATE;
ImGuizmo::MODE CurrentMode = ImGuizmo::WORLD;
bool UseSnapping = true;
Nuake::Vector3 CurrentSnapping = Nuake::Vector3{ 0.0f, 0.0f, 0.0f };
bool isControllingCamera = false;
private:
void DrawViewportWindow();
void DrawOverlay();
void RenderScene();
void DrawEntityTree(Nuake::Entity e);
void Save();
};