Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
BlackboardPanel.h
Go to the documentation of this file.
1/**
2 * @file BlackboardPanel.h
3 * @brief ImGui panel for editing blackboard variables (Phase 2.1)
4 * @author Olympe Engine
5 * @date 2026-02-19
6 */
7
8#pragma once
9
10#include "../../NodeGraphCore/BlackboardSystem.h"
11#include <string>
12
13namespace Olympe {
14namespace AI {
15
16/**
17 * @class BlackboardPanel
18 * @brief Full-featured ImGui panel for editing BlackboardSystem variables
19 *
20 * @details
21 * Allows listing, creating, editing, and deleting blackboard entries.
22 * All types (Int, Float, Bool, String, Vector3) are supported with
23 * appropriate widgets.
24 */
26public:
28 ~BlackboardPanel() = default;
29
30 /**
31 * @brief Render the panel
32 * @param blackboard Blackboard system to display/edit
33 * @param pOpen Pointer to visibility flag (nullptr = always visible)
34 */
35 void Render(NodeGraph::BlackboardSystem* blackboard, bool* pOpen = nullptr);
36
37private:
41
44 char m_newEntryName[256];
45 int m_newEntryTypeIndex; // index into type combo
46 std::string m_editTargetName;
47
48 // Temporary edit buffer for add/edit
50 char m_editStringBuf[1024];
51 char m_renameBuffer[256];
52};
53
54} // namespace AI
55} // namespace Olympe
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
Full-featured ImGui panel for editing BlackboardSystem variables.
void Render(NodeGraph::BlackboardSystem *blackboard, bool *pOpen=nullptr)
Render the panel.
NodeGraph::BlackboardValue m_editBuffer
void RenderAddDialog(NodeGraph::BlackboardSystem *blackboard)
void RenderEditPopup(NodeGraph::BlackboardSystem *blackboard)
void RenderEntryList(NodeGraph::BlackboardSystem *blackboard)
Manages named blackboard variables for a graph.
< Provides AssetID and INVALID_ASSET_ID
Stores a typed value for a blackboard entry.