Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | Static Private Attributes | List of all members
Olympe::NodeGraphPanel Class Reference

NodeGraphPanel - ImGui/ImNodes panel for node graph editing Provides visual editor for behavior trees and state machines. More...

#include <NodeGraphPanel.h>

+ Collaboration diagram for Olympe::NodeGraphPanel:

Public Member Functions

 NodeGraphPanel ()
 
 ~NodeGraphPanel ()
 
void Initialize ()
 
void Shutdown ()
 
void Render ()
 
void RenderContent ()
 
void RenderGraphTabs ()
 
void RenderGraph ()
 
void RenderContextMenu ()
 
void RenderNodeProperties ()
 
void RenderNodeEditModal ()
 
void HandleKeyboardShortcuts ()
 
void HandleNodeInteractions (int graphID)
 
void RenderSubgraphTabBar ()
 Renders the subgraph-aware tab bar above the graph canvas.
 
void OpenSubgraphTab (const std::string &subgraphUUID, const std::string &displayName)
 Opens (or focuses) the subgraph identified by subgraphUUID in a new tab.
 
void CloseSubgraphTab (int index)
 Closes the tab at index.
 
void CreateEmptySubgraph (const std::string &name)
 Creates an empty subgraph, inserts it into the active blueprint's data.subgraphs dict, and opens it in a new tab.
 
const GraphTabGetActiveTab () const
 Returns the GraphTab for the currently active tab.
 
std::string GetActiveSubgraphUUID () const
 Returns the subgraph UUID for the active tab, or empty string if the root graph is active.
 
void RenderNodePinsAndContent (GraphNode *node, int globalNodeUID, int graphID, const std::unordered_set< int > &connectedAttrIDs={})
 Render a single node with a coloured title bar, icon, and typed pins.
 
void RenderTypedPin (int attrId, const char *label, bool isInput, bool isExec, const std::unordered_set< int > &connectedAttrIDs={})
 Render a single typed attribute pin using ImDrawList shapes.
 
void RenderActiveLinks (NodeGraph *graph, int graphID)
 Overlay glow-coloured lines on links that connect to/from the active debug node, giving a visual "active link" indicator.
 
void RenderConnectionIndices (NodeGraph *graph, int graphID)
 Render execution indices (1, 2, 3, ...n) on connection lines for Sequence and Selector nodes based on child Y-position ordering.
 
void CreateNewNode (const char *nodeType, float x, float y)
 
void SyncNodePositionsFromImNodes (int graphID)
 
int GlobalUIDToLocalNodeID (int globalUID, int graphID) const
 

Static Public Member Functions

static void SetActiveDebugNode (int localNodeId)
 Set the local node ID that is currently executing.
 

Public Attributes

int m_SelectedNodeId = -1
 
int m_SelectedLinkId = -1
 
bool m_ShowContextMenu = false
 
float m_ContextMenuPosX = 0.0f
 
float m_ContextMenuPosY = 0.0f
 
bool m_SuppressGraphTabs = false
 When true, RenderGraphTabs() is skipped (used by BehaviorTreeRenderer)
 
bool m_ShowNodeEditModal = false
 
GraphNodem_EditingNode = nullptr
 
int m_EditingNodeId = -1
 
char m_NodeNameBuffer [256]
 
bool m_NodeDragStarted = false
 
int m_DraggedNodeId = -1
 
float m_DragStartX = 0.0f
 
float m_DragStartY = 0.0f
 
char m_ContextMenuSearch [128]
 
bool m_ShowMinimap = true
 When true the built-in ImNodes minimap is rendered in the bottom-right corner of the node editor canvas.
 
bool m_SnapToGrid = false
 When true node positions are rounded to the nearest grid cell on move.
 
float m_SnapGridSize = 16.0f
 Grid cell size in canvas units used when snap-to-grid is enabled.
 

Private Attributes

EditorAutosaveManager m_autosave
 Async autosave manager – persists node positions without blocking the UI.
 
std::unordered_set< intm_positionedNodes
 Tracks which global node UIDs have already had their ImNodes position initialised.
 
int m_lastActiveGraphId = -1
 Graph ID that was active last frame; used to detect graph switches so m_positionedNodes can be cleared.
 
std::vector< GraphTabm_SubgraphTabs
 Ordered list of open subgraph tabs. Index 0 is always the root graph.
 
int m_ActiveSubgraphTabIndex = 0
 Index into m_SubgraphTabs of the currently visible tab.
 
char m_NewSubgraphNameBuffer [128]
 Buffer used by the "New SubGraph" name input popup.
 
ImNodesEditorContextm_imnodesContext = nullptr
 Dedicated imnodes rendering context for this panel instance.
 
std::unique_ptr< class ImNodesCanvasEditorm_canvasEditor
 Canvas editor adapter for minimap support (Phase 36) Abstracts imnodes minimap rendering through ICanvasEditor interface.
 

Static Private Attributes

static int s_ActiveDebugNodeId = -1
 Backing storage for SetActiveDebugNode: the local node ID currently executing (-1 = none).
 

Detailed Description

NodeGraphPanel - ImGui/ImNodes panel for node graph editing Provides visual editor for behavior trees and state machines.

Definition at line 54 of file NodeGraphPanel.h.

Constructor & Destructor Documentation

◆ NodeGraphPanel()

Olympe::NodeGraphPanel::NodeGraphPanel ( )

◆ ~NodeGraphPanel()

Olympe::NodeGraphPanel::~NodeGraphPanel ( )

Definition at line 87 of file NodeGraphPanel.cpp.

Member Function Documentation

◆ CloseSubgraphTab()

void Olympe::NodeGraphPanel::CloseSubgraphTab ( int  index)

Closes the tab at index.

The root tab (index 0) cannot be closed.

Definition at line 2091 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static(), m_ActiveSubgraphTabIndex, and m_SubgraphTabs.

Referenced by RenderSubgraphTabBar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateEmptySubgraph()

void Olympe::NodeGraphPanel::CreateEmptySubgraph ( const std::string &  name)

Creates an empty subgraph, inserts it into the active blueprint's data.subgraphs dict, and opens it in a new tab.

Parameters
nameHuman-readable name for the new subgraph.

Definition at line 2108 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static(), and OpenSubgraphTab().

Referenced by RenderSubgraphTabBar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateNewNode()

void Olympe::NodeGraphPanel::CreateNewNode ( const char nodeType,
float  x,
float  y 
)

◆ GetActiveSubgraphUUID()

std::string Olympe::NodeGraphPanel::GetActiveSubgraphUUID ( ) const

Returns the subgraph UUID for the active tab, or empty string if the root graph is active.

Definition at line 2136 of file NodeGraphPanel.cpp.

References GetActiveTab(), and GetComponentTypeID_Static().

+ Here is the call graph for this function:

◆ GetActiveTab()

const GraphTab * Olympe::NodeGraphPanel::GetActiveTab ( ) const

Returns the GraphTab for the currently active tab.

Definition at line 2126 of file NodeGraphPanel.cpp.

References m_ActiveSubgraphTabIndex, and m_SubgraphTabs.

Referenced by GetActiveSubgraphUUID().

+ Here is the caller graph for this function:

◆ GlobalUIDToLocalNodeID()

int Olympe::NodeGraphPanel::GlobalUIDToLocalNodeID ( int  globalUID,
int  graphID 
) const
inline

Definition at line 175 of file NodeGraphPanel.h.

References GetComponentTypeID_Static().

Referenced by HandleNodeInteractions(), and RenderGraph().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandleKeyboardShortcuts()

void Olympe::NodeGraphPanel::HandleKeyboardShortcuts ( )

◆ HandleNodeInteractions()

void Olympe::NodeGraphPanel::HandleNodeInteractions ( int  graphID)

◆ Initialize()

void Olympe::NodeGraphPanel::Initialize ( )

◆ OpenSubgraphTab()

void Olympe::NodeGraphPanel::OpenSubgraphTab ( const std::string &  subgraphUUID,
const std::string &  displayName 
)

Opens (or focuses) the subgraph identified by subgraphUUID in a new tab.

Called on double-click of a BT_SubGraph node.

Parameters
subgraphUUIDUUID key in data.subgraphs.
displayNameName shown on the tab.

Definition at line 2069 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static(), m_ActiveSubgraphTabIndex, and m_SubgraphTabs.

Referenced by CreateEmptySubgraph().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Render()

void Olympe::NodeGraphPanel::Render ( )

Definition at line 119 of file NodeGraphPanel.cpp.

References RenderContent().

+ Here is the call graph for this function:

◆ RenderActiveLinks()

void Olympe::NodeGraphPanel::RenderActiveLinks ( NodeGraph graph,
int  graphID 
)

Overlay glow-coloured lines on links that connect to/from the active debug node, giving a visual "active link" indicator.

Must be called AFTER ImNodes::EndNodeEditor() so that node screen-space positions are valid.

Parameters
graphActive NodeGraph.
graphIDActive graph ID.

Definition at line 1356 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static(), and s_ActiveDebugNodeId.

Referenced by RenderGraph().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RenderConnectionIndices()

void Olympe::NodeGraphPanel::RenderConnectionIndices ( NodeGraph graph,
int  graphID 
)

Render execution indices (1, 2, 3, ...n) on connection lines for Sequence and Selector nodes based on child Y-position ordering.

Phase 38: Y-Axis positional execution ordering - indices auto-calculated from GetChildrenSortedByY() which sorts children by editorPosY.

Must be called AFTER ImNodes::EndNodeEditor() so that node screen-space positions are valid.

Parameters
graphActive NodeGraph.
graphIDActive graph ID.

Definition at line 1415 of file NodeGraphPanel.cpp.

References Olympe::BT_Selector, Olympe::BT_Sequence, and GetComponentTypeID_Static().

Referenced by RenderGraph().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RenderContent()

void Olympe::NodeGraphPanel::RenderContent ( )

◆ RenderContextMenu()

void Olympe::NodeGraphPanel::RenderContextMenu ( )

◆ RenderGraph()

void Olympe::NodeGraphPanel::RenderGraph ( )

Definition at line 551 of file NodeGraphPanel.cpp.

References Olympe::GraphNode::actionType, Olympe::AtomicTask, Olympe::Branch, Olympe::BT_Action, Olympe::BT_Condition, Olympe::BT_Decorator, Olympe::BT_OnEvent, Olympe::SystemColors::BT_ROOT_NODE_COLOR, Olympe::BT_Selector, Olympe::BT_Sequence, Olympe::GraphNode::conditionType, CreateNewNode(), Olympe::GraphNode::decoratorType, Olympe::Delay, Olympe::DoOnce, Olympe::EntryPoint, Olympe::Blueprint::CommandStack::ExecuteCommand(), Olympe::ForEach, Olympe::GraphLink::fromNode, Olympe::BlueprintEditor::Get(), Olympe::NodeGraphManager::Get(), Olympe::EditorContext::Get(), Olympe::EnumCatalogManager::Get(), Olympe::NodeStyleRegistry::Get(), Olympe::NodeGraphManager::GetActiveGraph(), Olympe::NodeGraphManager::GetActiveGraphId(), Olympe::GetBBValue, Olympe::BlueprintEditor::GetCommandStack(), GetComponentTypeID_Static(), Olympe::NodeGraphManager::GetGraph(), Olympe::NodeStyleRegistry::GetStyle(), GlobalUIDToLocalNodeID(), HandleNodeInteractions(), Olympe::NodeStyle::headerColor, Olympe::NodeStyle::headerHoveredColor, Olympe::NodeStyle::headerSelectedColor, m_autosave, m_canvasEditor, m_ContextMenuPosX, m_ContextMenuPosY, m_imnodesContext, m_lastActiveGraphId, m_positionedNodes, m_SelectedLinkId, m_SelectedNodeId, m_SnapGridSize, m_SnapToGrid, Olympe::MathOp, Olympe::GraphNode::name, RenderActiveLinks(), RenderConnectionIndices(), RenderNodePinsAndContent(), s_ActiveDebugNodeId, Olympe::EditorAutosaveManager::ScheduleSave(), Olympe::SetBBValue, Olympe::SubGraph, Olympe::Switch, Olympe::SystemColors::ToImU32_ABGR(), Olympe::NodeGraph::ToJson(), Olympe::VSSequence, and Olympe::While.

Referenced by RenderContent(), and Olympe::BehaviorTreeDebugWindow::RenderNodeGraphDebugPanel().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RenderGraphTabs()

void Olympe::NodeGraphPanel::RenderGraphTabs ( )

◆ RenderNodeEditModal()

void Olympe::NodeGraphPanel::RenderNodeEditModal ( )

◆ RenderNodePinsAndContent()

void Olympe::NodeGraphPanel::RenderNodePinsAndContent ( GraphNode node,
int  globalNodeUID,
int  graphID,
const std::unordered_set< int > &  connectedAttrIDs = {} 
)

Render a single node with a coloured title bar, icon, and typed pins.

Called from RenderGraph() for every node in the active graph.

Parameters
nodePointer to the graph node to render.
globalNodeUIDImNodes global unique ID for the node.
graphIDActive graph ID (used for debug-highlight check).
connectedAttrIDsSet of connected attribute IDs (for filled/outlined shapes).

Definition at line 1276 of file NodeGraphPanel.cpp.

References Olympe::BT_Action, Olympe::BT_Condition, Olympe::BT_Decorator, Olympe::BT_OnEvent, Olympe::BT_Root, Olympe::BT_Selector, Olympe::BT_Sequence, Olympe::Comment, Olympe::NodeGraphManager::Get(), Olympe::NodeStyleRegistry::Get(), Olympe::NodeGraphManager::GetActiveGraph(), GetComponentTypeID_Static(), Olympe::NodeStyleRegistry::GetStyle(), Olympe::NodeStyle::icon, Olympe::NodeGraph::MarkDirty(), Olympe::NodeTypeToString(), and RenderTypedPin().

Referenced by RenderGraph().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RenderNodeProperties()

void Olympe::NodeGraphPanel::RenderNodeProperties ( )

Definition at line 1720 of file NodeGraphPanel.cpp.

◆ RenderSubgraphTabBar()

void Olympe::NodeGraphPanel::RenderSubgraphTabBar ( )

Renders the subgraph-aware tab bar above the graph canvas.

Shows one tab per open subgraph plus the root graph. A "+ New SubGraph" button at the end creates an empty subgraph and opens it.

Definition at line 2000 of file NodeGraphPanel.cpp.

References CloseSubgraphTab(), CreateEmptySubgraph(), Olympe::GraphTab::displayName, GetComponentTypeID_Static(), m_ActiveSubgraphTabIndex, m_NewSubgraphNameBuffer, and m_SubgraphTabs.

+ Here is the call graph for this function:

◆ RenderTypedPin()

void Olympe::NodeGraphPanel::RenderTypedPin ( int  attrId,
const char label,
bool  isInput,
bool  isExec,
const std::unordered_set< int > &  connectedAttrIDs = {} 
)

Render a single typed attribute pin using ImDrawList shapes.

Parameters
attrIdImNodes attribute ID.
labelText label shown next to the pin.
isInputTrue for input (left) attribute; false for output (right).
isExecTrue to use the exec (triangle) pin shape; false for data (circle).
connectedAttrIDsSet of connected attribute IDs (for filled/outlined shapes).

Definition at line 1248 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static().

Referenced by RenderNodePinsAndContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetActiveDebugNode()

void Olympe::NodeGraphPanel::SetActiveDebugNode ( int  localNodeId)
static

Set the local node ID that is currently executing.

Pass -1 to clear the highlight. The value is stored in a static so it is visible to all panel instances and to the WorldBridge callback.

Definition at line 71 of file NodeGraphPanel.cpp.

References GetComponentTypeID_Static(), and s_ActiveDebugNodeId.

Referenced by Olympe::BehaviorTreeDebugWindow::RenderNodeGraphDebugPanel(), and Olympe::WorldBridge_RegisterTaskCallback().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Shutdown()

void Olympe::NodeGraphPanel::Shutdown ( )

Definition at line 106 of file NodeGraphPanel.cpp.

References Olympe::EditorAutosaveManager::Flush(), m_autosave, and m_imnodesContext.

Referenced by Olympe::BlueprintEditorGUI::Shutdown(), and Olympe::BehaviorTreeDebugWindow::ShutdownNodeGraphDebugMode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SyncNodePositionsFromImNodes()

void Olympe::NodeGraphPanel::SyncNodePositionsFromImNodes ( int  graphID)

Definition at line 1153 of file NodeGraphPanel.cpp.

References Olympe::NodeGraphManager::Get(), Olympe::NodeGraph::GetAllNodes(), GetComponentTypeID_Static(), and Olympe::NodeGraphManager::GetGraph().

Referenced by RenderContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_ActiveSubgraphTabIndex

int Olympe::NodeGraphPanel::m_ActiveSubgraphTabIndex = 0
private

Index into m_SubgraphTabs of the currently visible tab.

Definition at line 260 of file NodeGraphPanel.h.

Referenced by CloseSubgraphTab(), GetActiveTab(), NodeGraphPanel(), OpenSubgraphTab(), and RenderSubgraphTabBar().

◆ m_autosave

EditorAutosaveManager Olympe::NodeGraphPanel::m_autosave
private

Async autosave manager – persists node positions without blocking the UI.

Definition at line 241 of file NodeGraphPanel.h.

Referenced by Initialize(), RenderContent(), RenderGraph(), and Shutdown().

◆ m_canvasEditor

std::unique_ptr<class ImNodesCanvasEditor> Olympe::NodeGraphPanel::m_canvasEditor
private

Canvas editor adapter for minimap support (Phase 36) Abstracts imnodes minimap rendering through ICanvasEditor interface.

Definition at line 279 of file NodeGraphPanel.h.

Referenced by RenderContent(), and RenderGraph().

◆ m_ContextMenuPosX

float Olympe::NodeGraphPanel::m_ContextMenuPosX = 0.0f

Definition at line 196 of file NodeGraphPanel.h.

Referenced by RenderContextMenu(), and RenderGraph().

◆ m_ContextMenuPosY

float Olympe::NodeGraphPanel::m_ContextMenuPosY = 0.0f

Definition at line 197 of file NodeGraphPanel.h.

Referenced by RenderContextMenu(), and RenderGraph().

◆ m_ContextMenuSearch

char Olympe::NodeGraphPanel::m_ContextMenuSearch[128]

Definition at line 215 of file NodeGraphPanel.h.

Referenced by NodeGraphPanel(), and RenderContextMenu().

◆ m_DraggedNodeId

int Olympe::NodeGraphPanel::m_DraggedNodeId = -1

Definition at line 210 of file NodeGraphPanel.h.

◆ m_DragStartX

float Olympe::NodeGraphPanel::m_DragStartX = 0.0f

Definition at line 211 of file NodeGraphPanel.h.

◆ m_DragStartY

float Olympe::NodeGraphPanel::m_DragStartY = 0.0f

Definition at line 212 of file NodeGraphPanel.h.

◆ m_EditingNode

GraphNode* Olympe::NodeGraphPanel::m_EditingNode = nullptr

Definition at line 204 of file NodeGraphPanel.h.

◆ m_EditingNodeId

int Olympe::NodeGraphPanel::m_EditingNodeId = -1

Definition at line 205 of file NodeGraphPanel.h.

Referenced by RenderNodeEditModal().

◆ m_imnodesContext

ImNodesEditorContext* Olympe::NodeGraphPanel::m_imnodesContext = nullptr
private

Dedicated imnodes rendering context for this panel instance.

Prevents viewport state collision with other graph renderers.

Definition at line 271 of file NodeGraphPanel.h.

Referenced by Initialize(), RenderGraph(), and Shutdown().

◆ m_lastActiveGraphId

int Olympe::NodeGraphPanel::m_lastActiveGraphId = -1
private

Graph ID that was active last frame; used to detect graph switches so m_positionedNodes can be cleared.

Definition at line 250 of file NodeGraphPanel.h.

Referenced by RenderGraph().

◆ m_NewSubgraphNameBuffer

char Olympe::NodeGraphPanel::m_NewSubgraphNameBuffer[128]
private

Buffer used by the "New SubGraph" name input popup.

Definition at line 263 of file NodeGraphPanel.h.

Referenced by NodeGraphPanel(), and RenderSubgraphTabBar().

◆ m_NodeDragStarted

bool Olympe::NodeGraphPanel::m_NodeDragStarted = false

Definition at line 209 of file NodeGraphPanel.h.

◆ m_NodeNameBuffer

char Olympe::NodeGraphPanel::m_NodeNameBuffer[256]

Definition at line 206 of file NodeGraphPanel.h.

Referenced by NodeGraphPanel(), and RenderNodeEditModal().

◆ m_positionedNodes

std::unordered_set<int> Olympe::NodeGraphPanel::m_positionedNodes
private

Tracks which global node UIDs have already had their ImNodes position initialised.

Prevents SetNodeGridSpacePos() from overriding user drags on subsequent frames. Cleared whenever the active graph changes.

Definition at line 246 of file NodeGraphPanel.h.

Referenced by RenderGraph().

◆ m_SelectedLinkId

int Olympe::NodeGraphPanel::m_SelectedLinkId = -1

Definition at line 194 of file NodeGraphPanel.h.

Referenced by RenderGraph().

◆ m_SelectedNodeId

int Olympe::NodeGraphPanel::m_SelectedNodeId = -1

◆ m_ShowContextMenu

bool Olympe::NodeGraphPanel::m_ShowContextMenu = false

Definition at line 195 of file NodeGraphPanel.h.

◆ m_ShowMinimap

bool Olympe::NodeGraphPanel::m_ShowMinimap = true

When true the built-in ImNodes minimap is rendered in the bottom-right corner of the node editor canvas.

Definition at line 223 of file NodeGraphPanel.h.

Referenced by HandleKeyboardShortcuts().

◆ m_ShowNodeEditModal

bool Olympe::NodeGraphPanel::m_ShowNodeEditModal = false

Definition at line 203 of file NodeGraphPanel.h.

Referenced by RenderNodeEditModal().

◆ m_SnapGridSize

float Olympe::NodeGraphPanel::m_SnapGridSize = 16.0f

Grid cell size in canvas units used when snap-to-grid is enabled.

Definition at line 233 of file NodeGraphPanel.h.

Referenced by HandleKeyboardShortcuts(), RenderContent(), and RenderGraph().

◆ m_SnapToGrid

bool Olympe::NodeGraphPanel::m_SnapToGrid = false

When true node positions are rounded to the nearest grid cell on move.

Definition at line 230 of file NodeGraphPanel.h.

Referenced by HandleKeyboardShortcuts(), RenderContent(), and RenderGraph().

◆ m_SubgraphTabs

std::vector<GraphTab> Olympe::NodeGraphPanel::m_SubgraphTabs
private

Ordered list of open subgraph tabs. Index 0 is always the root graph.

Definition at line 257 of file NodeGraphPanel.h.

Referenced by CloseSubgraphTab(), GetActiveTab(), NodeGraphPanel(), OpenSubgraphTab(), and RenderSubgraphTabBar().

◆ m_SuppressGraphTabs

bool Olympe::NodeGraphPanel::m_SuppressGraphTabs = false

When true, RenderGraphTabs() is skipped (used by BehaviorTreeRenderer)

Definition at line 200 of file NodeGraphPanel.h.

Referenced by RenderContent(), and Olympe::BehaviorTreeRenderer::RenderLayoutWithTabs().

◆ s_ActiveDebugNodeId

int Olympe::NodeGraphPanel::s_ActiveDebugNodeId = -1
staticprivate

Backing storage for SetActiveDebugNode: the local node ID currently executing (-1 = none).

Shared across all panel instances.

Definition at line 238 of file NodeGraphPanel.h.

Referenced by RenderActiveLinks(), RenderContent(), RenderGraph(), and SetActiveDebugNode().


The documentation for this class was generated from the following files: