Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
BlueprintEditorGUI.h
Go to the documentation of this file.
1/*
2 * Olympe Blueprint Editor GUI - Frontend (User Interface)
3 *
4 * Visual node-based editor interface using ImGui
5 * All data is retrieved from and modified through BlueprintEditor backend
6 */
7
8#pragma once
9
10#include <string>
11#include <vector>
12#include <map>
13#include "AssetBrowser.h"
14#include "AssetInfoPanel.h"
15#include "NodeGraphPanel.h"
16#include "EntitiesPanel.h"
17#include "InspectorPanel.h"
18
19// Forward declare ImVec2
20struct ImVec2;
21
22namespace Olympe
23{
24 // Forward declaration of backend
25 class BlueprintEditor;
26
28 {
33 };
34
35 /**
36 * BlueprintEditorGUI - Frontend UI for Blueprint Editor
37 * Renders ImGui interface and interacts with BlueprintEditor backend
38 * Contains NO business logic - all data operations go through backend
39 */
41 {
42 public:
45
46 void Initialize();
47 void Shutdown();
48
49 // Render the editor UI
50 // Only renders if BlueprintEditor backend is active
51 void Render();
52
53 private:
54 void RenderMenuBar();
55 void RenderEntityPanel();
56 void RenderNodeEditor();
58 void RenderStatusBar();
60
61 // D) Additional dialog methods
65
66 // Phase 6: Keyboard shortcuts
68
69 // File operations (delegate to backend)
70 void NewBlueprint();
71 void LoadBlueprint(const std::string& filepath);
72 void SaveBlueprint();
73 void SaveBlueprintAs();
74
75 // Component operations (delegate to backend)
76 void AddComponent(const std::string& type);
77 void RemoveComponent(int index);
78
79 // UI state (not business logic)
81
82 // Node editor state (UI-only)
83 std::map<int, ImVec2> m_NodePositions;
84 std::vector<NodeConnection> m_Connections;
86
87 // UI dialog state
94
95 // D) Panel visibility flags for View menu
104 bool m_ShowTemplateBrowser; // Phase 5
105 bool m_ShowHistory; // Phase 6
106
107 // D) Additional dialog flags
110
111 // Asset management UI (uses backend for data)
114
115 // New panels for Phase 2, 3, 4
119
120 // Phase 5: Template management UI
122
123 // Phase 6: History panel UI
125 };
126}
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
BlueprintEditorGUI - Frontend UI for Blueprint Editor Renders ImGui interface and interacts with Blue...
void AddComponent(const std::string &type)
class HistoryPanel * m_HistoryPanel
void LoadBlueprint(const std::string &filepath)
std::map< int, ImVec2 > m_NodePositions
class TemplateBrowserPanel * m_TemplateBrowserPanel
std::vector< NodeConnection > m_Connections
EntitiesPanel - ImGui panel for entity list Shows all runtime entities from the World ECS.
HistoryPanel - ImGui panel for command history visualization Shows undo/redo stacks with command desc...
InspectorPanel - Adaptive inspector panel Displays properties based on current selection context.
NodeGraphPanel - ImGui/ImNodes panel for node graph editing Provides visual editor for behavior trees...
TemplateBrowserPanel - ImGui panel for template management Provides interface for browsing,...