Olympe Engine
2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Source
BlueprintEditor
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
20
struct
ImVec2
;
21
22
namespace
Olympe
23
{
24
// Forward declaration of backend
25
class
BlueprintEditor;
26
27
struct
NodeConnection
28
{
29
int
from_node
;
30
int
to_node
;
31
int
from_attr
;
32
int
to_attr
;
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
*/
40
class
BlueprintEditorGUI
41
{
42
public
:
43
BlueprintEditorGUI
();
44
~BlueprintEditorGUI
();
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
();
57
void
RenderPropertyPanel
();
58
void
RenderStatusBar
();
59
void
RenderComponentAddDialog
();
60
61
// D) Additional dialog methods
62
void
RenderPreferencesDialog
();
63
void
RenderShortcutsDialog
();
64
void
RenderMigrationDialog
();
65
66
// Phase 6: Keyboard shortcuts
67
void
HandleKeyboardShortcuts
();
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)
80
int
m_SelectedComponentIndex
;
81
82
// Node editor state (UI-only)
83
std::map<int, ImVec2>
m_NodePositions
;
84
std::vector<NodeConnection>
m_Connections
;
85
int
m_NextNodeId
;
86
87
// UI dialog state
88
bool
m_ShowDemoWindow
;
89
bool
m_ShowAddComponentDialog
;
90
bool
m_ShowAboutDialog
;
91
char
m_NewBlueprintNameBuffer
[256];
92
char
m_FilepathBuffer
[512];
93
int
m_SelectedComponentType
;
94
95
// D) Panel visibility flags for View menu
96
bool
m_ShowAssetBrowser
;
97
bool
m_ShowAssetInfo
;
98
bool
m_ShowInspector
;
99
bool
m_ShowNodeGraph
;
100
bool
m_ShowEntities
;
101
bool
m_ShowEntityProperties
;
102
bool
m_ShowComponentGraph
;
103
bool
m_ShowPropertyPanel
;
104
bool
m_ShowTemplateBrowser
;
// Phase 5
105
bool
m_ShowHistory
;
// Phase 6
106
107
// D) Additional dialog flags
108
bool
m_ShowPreferences
;
109
bool
m_ShowShortcuts
;
110
111
// Asset management UI (uses backend for data)
112
AssetBrowser
m_AssetBrowser
;
113
AssetInfoPanel
m_AssetInfoPanel
;
114
115
// New panels for Phase 2, 3, 4
116
NodeGraphPanel
m_NodeGraphPanel
;
117
EntitiesPanel
m_EntitiesPanel
;
118
InspectorPanel
m_InspectorPanel
;
119
120
// Phase 5: Template management UI
121
class
TemplateBrowserPanel
*
m_TemplateBrowserPanel
;
122
123
// Phase 6: History panel UI
124
class
HistoryPanel
*
m_HistoryPanel
;
125
};
126
}
AssetBrowser.h
AssetInfoPanel.h
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
EntitiesPanel.h
InspectorPanel.h
NodeGraphPanel.h
Olympe::AssetBrowser
Definition
AssetBrowser.h:29
Olympe::AssetInfoPanel
Definition
AssetInfoPanel.h:18
Olympe::BlueprintEditorGUI
BlueprintEditorGUI - Frontend UI for Blueprint Editor Renders ImGui interface and interacts with Blue...
Definition
BlueprintEditorGUI.h:41
Olympe::BlueprintEditorGUI::AddComponent
void AddComponent(const std::string &type)
Definition
BlueprintEditorGUI.cpp:749
Olympe::BlueprintEditorGUI::m_HistoryPanel
class HistoryPanel * m_HistoryPanel
Definition
BlueprintEditorGUI.h:124
Olympe::BlueprintEditorGUI::m_SelectedComponentIndex
int m_SelectedComponentIndex
Definition
BlueprintEditorGUI.h:80
Olympe::BlueprintEditorGUI::HandleKeyboardShortcuts
void HandleKeyboardShortcuts()
Definition
BlueprintEditorGUI.cpp:954
Olympe::BlueprintEditorGUI::RenderShortcutsDialog
void RenderShortcutsDialog()
Definition
BlueprintEditorGUI.cpp:851
Olympe::BlueprintEditorGUI::m_AssetBrowser
AssetBrowser m_AssetBrowser
Definition
BlueprintEditorGUI.h:112
Olympe::BlueprintEditorGUI::NewBlueprint
void NewBlueprint()
Definition
BlueprintEditorGUI.cpp:701
Olympe::BlueprintEditorGUI::Initialize
void Initialize()
Definition
BlueprintEditorGUI.cpp:59
Olympe::BlueprintEditorGUI::m_ShowAboutDialog
bool m_ShowAboutDialog
Definition
BlueprintEditorGUI.h:90
Olympe::BlueprintEditorGUI::Shutdown
void Shutdown()
Definition
BlueprintEditorGUI.cpp:91
Olympe::BlueprintEditorGUI::m_ShowInspector
bool m_ShowInspector
Definition
BlueprintEditorGUI.h:98
Olympe::BlueprintEditorGUI::RenderStatusBar
void RenderStatusBar()
Definition
BlueprintEditorGUI.cpp:621
Olympe::BlueprintEditorGUI::m_ShowAssetInfo
bool m_ShowAssetInfo
Definition
BlueprintEditorGUI.h:97
Olympe::BlueprintEditorGUI::LoadBlueprint
void LoadBlueprint(const std::string &filepath)
Definition
BlueprintEditorGUI.cpp:711
Olympe::BlueprintEditorGUI::m_ShowAddComponentDialog
bool m_ShowAddComponentDialog
Definition
BlueprintEditorGUI.h:89
Olympe::BlueprintEditorGUI::m_ShowTemplateBrowser
bool m_ShowTemplateBrowser
Definition
BlueprintEditorGUI.h:104
Olympe::BlueprintEditorGUI::m_SelectedComponentType
int m_SelectedComponentType
Definition
BlueprintEditorGUI.h:93
Olympe::BlueprintEditorGUI::m_NodePositions
std::map< int, ImVec2 > m_NodePositions
Definition
BlueprintEditorGUI.h:83
Olympe::BlueprintEditorGUI::m_ShowDemoWindow
bool m_ShowDemoWindow
Definition
BlueprintEditorGUI.h:88
Olympe::BlueprintEditorGUI::m_ShowComponentGraph
bool m_ShowComponentGraph
Definition
BlueprintEditorGUI.h:102
Olympe::BlueprintEditorGUI::m_EntitiesPanel
EntitiesPanel m_EntitiesPanel
Definition
BlueprintEditorGUI.h:117
Olympe::BlueprintEditorGUI::m_TemplateBrowserPanel
class TemplateBrowserPanel * m_TemplateBrowserPanel
Definition
BlueprintEditorGUI.h:121
Olympe::BlueprintEditorGUI::SaveBlueprintAs
void SaveBlueprintAs()
Definition
BlueprintEditorGUI.cpp:739
Olympe::BlueprintEditorGUI::RenderEntityPanel
void RenderEntityPanel()
Definition
BlueprintEditorGUI.cpp:444
Olympe::BlueprintEditorGUI::RenderNodeEditor
void RenderNodeEditor()
Definition
BlueprintEditorGUI.cpp:518
Olympe::BlueprintEditorGUI::m_FilepathBuffer
char m_FilepathBuffer[512]
Definition
BlueprintEditorGUI.h:92
Olympe::BlueprintEditorGUI::RenderPreferencesDialog
void RenderPreferencesDialog()
Definition
BlueprintEditorGUI.cpp:818
Olympe::BlueprintEditorGUI::RemoveComponent
void RemoveComponent(int index)
Definition
BlueprintEditorGUI.cpp:800
Olympe::BlueprintEditorGUI::RenderMenuBar
void RenderMenuBar()
Definition
BlueprintEditorGUI.cpp:440
Olympe::BlueprintEditorGUI::m_ShowAssetBrowser
bool m_ShowAssetBrowser
Definition
BlueprintEditorGUI.h:96
Olympe::BlueprintEditorGUI::m_NodeGraphPanel
NodeGraphPanel m_NodeGraphPanel
Definition
BlueprintEditorGUI.h:116
Olympe::BlueprintEditorGUI::m_Connections
std::vector< NodeConnection > m_Connections
Definition
BlueprintEditorGUI.h:84
Olympe::BlueprintEditorGUI::~BlueprintEditorGUI
~BlueprintEditorGUI()
Definition
BlueprintEditorGUI.cpp:44
Olympe::BlueprintEditorGUI::m_ShowPropertyPanel
bool m_ShowPropertyPanel
Definition
BlueprintEditorGUI.h:103
Olympe::BlueprintEditorGUI::SaveBlueprint
void SaveBlueprint()
Definition
BlueprintEditorGUI.cpp:722
Olympe::BlueprintEditorGUI::m_ShowEntityProperties
bool m_ShowEntityProperties
Definition
BlueprintEditorGUI.h:101
Olympe::BlueprintEditorGUI::m_ShowPreferences
bool m_ShowPreferences
Definition
BlueprintEditorGUI.h:108
Olympe::BlueprintEditorGUI::m_ShowHistory
bool m_ShowHistory
Definition
BlueprintEditorGUI.h:105
Olympe::BlueprintEditorGUI::m_ShowEntities
bool m_ShowEntities
Definition
BlueprintEditorGUI.h:100
Olympe::BlueprintEditorGUI::BlueprintEditorGUI
BlueprintEditorGUI()
Definition
BlueprintEditorGUI.cpp:18
Olympe::BlueprintEditorGUI::RenderComponentAddDialog
void RenderComponentAddDialog()
Definition
BlueprintEditorGUI.cpp:660
Olympe::BlueprintEditorGUI::RenderPropertyPanel
void RenderPropertyPanel()
Definition
BlueprintEditorGUI.cpp:586
Olympe::BlueprintEditorGUI::RenderMigrationDialog
void RenderMigrationDialog()
Definition
BlueprintEditorGUI.cpp:900
Olympe::BlueprintEditorGUI::m_NewBlueprintNameBuffer
char m_NewBlueprintNameBuffer[256]
Definition
BlueprintEditorGUI.h:91
Olympe::BlueprintEditorGUI::m_ShowNodeGraph
bool m_ShowNodeGraph
Definition
BlueprintEditorGUI.h:99
Olympe::BlueprintEditorGUI::m_InspectorPanel
InspectorPanel m_InspectorPanel
Definition
BlueprintEditorGUI.h:118
Olympe::BlueprintEditorGUI::m_NextNodeId
int m_NextNodeId
Definition
BlueprintEditorGUI.h:85
Olympe::BlueprintEditorGUI::Render
void Render()
Definition
BlueprintEditorGUI.cpp:115
Olympe::BlueprintEditorGUI::m_ShowShortcuts
bool m_ShowShortcuts
Definition
BlueprintEditorGUI.h:109
Olympe::BlueprintEditorGUI::m_AssetInfoPanel
AssetInfoPanel m_AssetInfoPanel
Definition
BlueprintEditorGUI.h:113
Olympe::EntitiesPanel
EntitiesPanel - ImGui panel for entity list Shows all runtime entities from the World ECS.
Definition
EntitiesPanel.h:19
Olympe::HistoryPanel
HistoryPanel - ImGui panel for command history visualization Shows undo/redo stacks with command desc...
Definition
HistoryPanel.h:16
Olympe::InspectorPanel
InspectorPanel - Adaptive inspector panel Displays properties based on current selection context.
Definition
InspectorPanel.h:28
Olympe::NodeGraphPanel
NodeGraphPanel - ImGui/ImNodes panel for node graph editing Provides visual editor for behavior trees...
Definition
NodeGraphPanel.h:21
Olympe::TemplateBrowserPanel
TemplateBrowserPanel - ImGui panel for template management Provides interface for browsing,...
Definition
TemplateBrowserPanel.h:19
Olympe
Definition
BehaviorTreeDebugWindow.cpp:30
Olympe::NodeConnection
Definition
BlueprintEditorGUI.h:28
Olympe::NodeConnection::from_node
int from_node
Definition
BlueprintEditorGUI.h:29
Olympe::NodeConnection::to_attr
int to_attr
Definition
BlueprintEditorGUI.h:32
Olympe::NodeConnection::to_node
int to_node
Definition
BlueprintEditorGUI.h:30
Olympe::NodeConnection::from_attr
int from_attr
Definition
BlueprintEditorGUI.h:31
Generated on Tue Feb 17 2026 13:49:10 for Olympe Engine by
1.9.8