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#include "EditorConfigManager.h"
19#include "TabManager.h"
20#include "../Core/IconsFontAwesome6.h"
21
22// Forward declare ImVec2
23struct ImVec2;
24
25namespace Olympe
26{
27 // Forward declaration of backend
28 class BlueprintEditor;
29
31 {
36 };
37
38 /**
39 * BlueprintEditorGUI - Frontend UI for Blueprint Editor
40 * Renders ImGui interface and interacts with BlueprintEditor backend
41 * Contains NO business logic - all data operations go through backend
42 */
44 {
45 public:
48
49 void Initialize();
50 void Shutdown();
51
52 // Render the editor UI
53 // Only renders if BlueprintEditor backend is active
54 void Render();
55
56 // Configuration management
59
60 private:
61 void RenderMenuBar();
62 void RenderEntityPanel();
63 void RenderNodeEditor();
65 void RenderStatusBar();
67
68 // Fixed layout rendering
69 void RenderFixedLayout();
70
71 // D) Additional dialog methods
75
76 // Phase 6: Keyboard shortcuts
78
79 // File operations (delegate to backend)
80 void NewBlueprint(); // Legacy - creates EntityBlueprint
81 void NewVisualScriptGraph(); // VS v4 - creates empty graph
82 void LoadBlueprint(const std::string& filepath);
83 void SaveBlueprint();
84 void SaveBlueprintAs();
85
86 // Component operations (delegate to backend)
87 void AddComponent(const std::string& type);
88 void RemoveComponent(int index);
89
90 // UI state (not business logic)
92
93 // Node editor state (UI-only)
94 std::map<int, ImVec2> m_NodePositions;
95 std::vector<NodeConnection> m_Connections;
97
98 // UI dialog state
105
106 // D) Panel visibility flags for View menu
115 bool m_ShowTemplateBrowser; // Phase 5
116 bool m_ShowHistory; // Phase 6
117 bool m_ShowVSEditor; // Phase 5 (new)
118 bool m_ShowDebugger; // Phase 5 (new)
119 bool m_ShowProfiler; // Phase 5 (new)
120
121 // D) Additional dialog flags
124
125 // Asset management UI (uses backend for data)
128
129 // New panels for Phase 2, 3, 4
133
134 // Phase 5: Template management UI
136
137 // Phase 6: History panel UI
139
140 // Phase 5 (new): VS Editor, Debugger, Profiler panels
144
145 // Fixed layout panel widths
150
151 // Height of the asset-browser section within the left column.
152 // The inspector occupies the remaining space below it.
153 // Resizable via a horizontal splitter between the two sections.
155
156 // Phase 24.3 — Height of the verification logs section.
157 // The left column is now split into 3: Asset Browser | Inspector | Verification Logs
158 // Resizable via horizontal splitters.
161 };
162}
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
Central manager for the multi-graph tab system.
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 VisualScriptEditorPanel * m_VSEditorPanel
class TemplateBrowserPanel * m_TemplateBrowserPanel
class ProfilerPanel * m_ProfilerPanel
std::vector< NodeConnection > m_Connections
ImGui panel that exposes DebugController UI.
Definition DebugPanel.h:24
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...
ImGui panel that visualizes PerformanceProfiler data.
TemplateBrowserPanel - ImGui panel for template management Provides interface for browsing,...
ImNodes graph editor for ATS Visual Script v4 graphs.
< Provides AssetID and INVALID_ASSET_ID