![]() |
Olympe Engine 2.0
2D Game Engine with ECS Architecture
|
ImNodes graph editor for ATS Visual Script v4 graphs. More...
#include <VisualScriptEditorPanel.h>
Collaboration diagram for Olympe::VisualScriptEditorPanel:Public Member Functions | |
| VisualScriptEditorPanel () | |
| VisualScriptEditorPanel Constructor. | |
| ~VisualScriptEditorPanel () | |
| VisualScriptEditorPanel Destructor. | |
| void | Initialize () |
| Initialize the editor panel with ImNodes context and UI helpers. | |
| void | Shutdown () |
| Shutdown the editor panel and release all resources. | |
| void | Render () |
| Renders the full panel window. | |
| void | RenderContent () |
| Renders panel content without window wrapper - for fixed layout. | |
| bool | IsVisible () const |
| Returns true if the panel window is visible. | |
| void | SetVisible (bool v) |
| Show / hide the panel. | |
| void | LoadTemplate (const TaskGraphTemplate *tmpl, const std::string &path) |
| Loads a VS graph template into the editor canvas. | |
| bool | Save () |
| Saves the current canvas state to JSON v4 at the loaded path. | |
| bool | SaveAs (const std::string &path) |
| Saves the current canvas state to a new JSON v4 file. | |
| const std::string & | GetCurrentPath () const |
| Returns the currently loaded file path (empty if unsaved). | |
| bool | IsDirty () const |
| Returns true when there are unsaved modifications. | |
| int | AddNode (TaskNodeType type, float x, float y) |
| Creates a new node on the canvas. | |
| void | RemoveNode (int nodeID) |
| Removes a node from the canvas. | |
| void | ConnectExec (int srcNodeID, const std::string &srcPinName, int dstNodeID, const std::string &dstPinName) |
| Creates an exec connection between two nodes. | |
| void | ConnectData (int srcNodeID, const std::string &srcPinName, int dstNodeID, const std::string &dstPinName) |
| Creates a data connection between two nodes. | |
| const TaskGraphTemplate & | GetTemplate () const |
| Returns a reference to the internal template being edited. | |
| void | RenderVerificationLogsPanel () |
| Public render method for verification logs panel. | |
| void | ValidateAndCleanBlackboardEntries () |
| Removes blackboard entries with empty keys or VariableType::None. | |
| void | CommitPendingBlackboardEdits () |
| Commits any pending key-name edits stored in m_pendingBlackboardEdits. | |
| void | ResetViewportBeforeSave () |
| Resets the ImNodes canvas panning to (0,0) before saving node positions. | |
| void | AfterSave () |
| Restores the ImNodes canvas panning saved by ResetViewportBeforeSave(). | |
| ImVec2 | ScreenToCanvasPos (ImVec2 screenPos) const |
| Converts a screen-space position to canvas (editor) space. | |
| BlackboardValidationResult | ValidateBlackboardKey (const std::string &key, bool isGlobal, int excludeIndex=-1) |
| Validates a blackboard key according to schema rules. | |
| bool | ValidateBlackboardEntry (const BlackboardEntry &entry) |
| Validates a complete blackboard entry. | |
| void | RenderConditionEditor (Condition &condition, int conditionIndex, const std::vector< BlackboardEntry > &allVars, const std::vector< std::string > &availablePins) |
| Renders the full editor UI for one Condition entry on a Branch/While node. | |
| void | RenderVariableSelector (std::string &selectedVar, const std::vector< BlackboardEntry > &allVars, VariableType expectedType, const char *label) |
| Renders a type-filtered variable selector combo box. | |
| void | RenderConstValueInput (TaskValue &value, VariableType varType, const char *label) |
| Renders a type-aware const value input widget. | |
| void | RenderPinSelector (std::string &selectedPin, const std::vector< std::string > &availablePins, const char *label) |
| Renders a pin selector combo box. | |
| int | AllocNodeID () |
| Allocate a unique node ID. | |
| int | AllocLinkID () |
| Allocate a unique link ID. | |
| int | ExecInAttrUID (int nodeID) const |
| Maps node ID -> ImNodes attribute UID for an exec-in pin. | |
| int | ExecOutAttrUID (int nodeID, int pinIndex) const |
| Maps node ID + pin index -> ImNodes attribute UID for exec-out pins. | |
| int | DataInAttrUID (int nodeID, int pinIndex) const |
| Maps node ID + data pin index -> ImNodes attribute UID for data-in pins. | |
| int | DataOutAttrUID (int nodeID, int pinIndex) const |
| Maps node ID + data pin index -> ImNodes attribute UID for data-out pins. | |
| std::vector< std::string > | GetExecOutputPinsForNode (const TaskNodeDefinition &def) const |
| Returns exec-out pin names for a node definition, including any dynamically-added pins (VSSequence). | |
| void | SyncTemplateFromCanvas () |
| Builds the in-memory TaskGraphTemplate from the editor nodes/links. | |
| void | SyncCanvasFromTemplate () |
| Builds the editor canvas from the in-memory TaskGraphTemplate. | |
| void | RebuildLinks () |
| Rebuilds ImNodes exec/data link arrays from the template. | |
| void | SyncEditorNodesFromTemplate () |
| Rebuilds m_editorNodes from m_template, preserving existing node positions. | |
| void | RemoveLink (int linkID) |
| Removes an ImNodes link (and its underlying template connection) by link ID. | |
| bool | SerializeAndWrite (const std::string &path) |
| Serializes the template to JSON v4 and writes to a file. | |
| void | SyncNodePositionsFromImNodes () |
| Pulls the current node positions from ImNodes into m_editorNodes. | |
| void | SyncPresetsFromRegistryToTemplate () |
| Syncs ALL presets from the registry to the template. | |
| void | OnNodeDoubleClicked (int nodeID) |
| Handles double-click on a node (opens SubGraph, etc). | |
| std::string | GetNodeSubGraphPath (const TaskNodeDefinition &def) const |
| Extracts SubGraph file path from a node definition. | |
Static Public Member Functions | |
| static std::vector< BlackboardEntry > | GetVariablesByType (const std::vector< BlackboardEntry > &allVars, VariableType expectedType) |
| Returns a filtered subset of blackboard entries matching a type. | |
| static std::string | BuildConditionPreview (const Condition &cond) |
| Builds a human-readable preview string for a condition. | |
| static std::vector< std::string > | GetExecOutputPins (TaskNodeType type) |
| Returns the exec-out pin names for a node type. | |
| static std::vector< std::string > | GetExecInputPins (TaskNodeType type) |
| Returns the exec-in pin names for a node type. | |
| static std::vector< std::string > | GetDataInputPins (TaskNodeType type) |
| Returns the data-in pin names for a node type. | |
| static std::vector< std::string > | GetDataOutputPins (TaskNodeType type) |
| Returns the data-out pin names for a node type. | |
Public Attributes | |
| bool | m_visible = true |
| bool | m_dirty = false |
| bool | m_paletteOpen = false |
| ImNodesEditorContext * | m_imnodesContext = nullptr |
| bool | m_needsPositionSync = false |
| bool | m_skipPositionSyncNextFrame = false |
| Set to true by Undo/Redo; causes next frame to skip SyncNodePositionsFromImNodes() so that the positions applied by SyncEditorNodesFromTemplate() are not overwritten by stale ImNodes state before the new positions have been rendered once. | |
| bool | m_justPerformedUndoRedo = false |
| Set to true immediately after Undo/Redo; blocks node movement tracking for 1 frame to allow ImNodes to render the new positions before resuming normal position sync. | |
| std::string | m_currentPath |
| TaskGraphTemplate | m_template |
| The template currently being edited. | |
| std::vector< VSEditorNode > | m_editorNodes |
| Editor nodes (mirrors m_template.Nodes + position/selection state) | |
| std::vector< VSEditorLink > | m_editorLinks |
| Editor links (exec + data) | |
| std::unordered_set< int > | m_positionedNodes |
| Nodes for which ImNodes has been given a position. | |
| int | m_nextNodeID = 1 |
| Next available node ID. | |
| int | m_nextLinkID = 1 |
| Next available ImNodes link ID. | |
| int | m_selectedNodeID = -1 |
| Currently selected node (for properties panel) | |
| std::vector< std::string > | m_validationWarnings |
| Validation messages (rebuilt each frame) | |
| std::vector< std::string > | m_validationErrors |
| VSVerificationResult | m_verificationResult |
| Latest verification result (produced by RunVerification()) | |
| bool | m_verificationDone = false |
| True once RunVerification() has been called at least once for the current graph. | |
| std::vector< std::string > | m_verificationLogs |
| Verification log messages (populated by RunVerification()) Phase 24.3 — for display in the verification output panel. | |
| std::vector< std::string > | m_simulationTraces |
| Simulation execution traces (populated by RunGraphSimulation()) Phase 24.4 — added to verification logs for display. | |
| bool | m_simulationDone = false |
| True if simulation has been run. | |
| std::vector< ExecutionToken > | m_executionTokenStack |
| Phase 24.4 — Execution token stack for multi-branch simulation Enables proper handling of Sequence nodes with multiple branches. | |
| int | m_focusNodeID = -1 |
| Node ID to focus/scroll to on next RenderCanvas() frame (-1 = none) | |
| float | m_contextMenuX = 0.0f |
| Right-click paste position. | |
| float | m_contextMenuY = 0.0f |
| int | m_contextNodeID = -1 |
| Node ID captured at the moment a right-click context menu was opened on a node. | |
| int | m_contextLinkID = -1 |
| Link ID captured at the moment a right-click context menu was opened on a link. | |
| int | m_propEditNodeIDOnFocus = -1 |
| Node ID that was selected when RenderProperties() last entered focus. | |
| std::string | m_propEditOldName |
| Snapshot values captured at focus time for each editable field. | |
| std::string | m_propEditOldTaskID |
| std::string | m_propEditOldConditionID |
| std::string | m_propEditOldBBKey |
| std::string | m_propEditOldMathOp |
| std::string | m_propEditOldSubGraphPath |
| float | m_propEditOldDelay = 0.0f |
| std::string | m_propEditSwitchVar |
| Live buffer for switchVariable field. | |
| std::vector< SwitchCaseDefinition > | m_propEditSwitchCases |
| Per-case label edit buffers. | |
| UndoRedoStack | m_undoStack |
| Undo/Redo command stack for reversible graph editing operations. | |
| bool | m_pendingAddPin = false |
| Pending dynamic pin addition (from [+] button clicked in canvas) | |
| int | m_pendingAddPinNodeID = -1 |
| bool | m_pendingRemovePin = false |
| Pending dynamic pin removal (from [-] button clicked in canvas) | |
| int | m_pendingRemovePinNodeID = -1 |
| int | m_pendingRemovePinDynIdx = -1 |
| 0-based index in DynamicExecOutputPins | |
| std::unordered_map< int, std::pair< float, float > > | m_nodeDragStartPositions |
| Per-node drag-start positions used to record a single MoveNodeCommand per drag gesture instead of one command per frame. | |
| bool | m_pendingNodeDrop = false |
| True when a node drop is pending processing this frame. | |
| TaskNodeType | m_pendingNodeType = TaskNodeType::EntryPoint |
| float | m_pendingNodeX = 0.0f |
| float | m_pendingNodeY = 0.0f |
| bool | m_showSaveAsDialog = false |
| True when the "Save As" modal should be opened next frame. | |
| char | m_saveAsFilename [256] |
| Buffer for the user-entered filename (without extension) | |
| std::string | m_saveAsDirectory = "Blueprints/AI" |
| Currently selected destination directory. | |
| std::string | m_saveAsExtension = ".ats" |
| Extension to append when saving (derived from m_currentPath; defaults to ".ats") | |
| std::unordered_map< int, std::string > | m_pendingBlackboardEdits |
| Deferred key-name edits for blackboard entries: index -> pending new key. | |
| float | m_propertiesPanelWidth = 0.0f |
| Width of the properties+blackboard panel on the right. | |
| float | m_nodePropertiesPanelHeight = 0.0f |
| Height of the Node Properties panel (Part A) in the right panel. | |
| float | m_presetBankPanelHeight = 0.0f |
| Height of the Preset Bank panel (Part B) in the right panel. | |
| float | m_verificationLogsPanelHeight = 0.0f |
| Height of the Verification Logs panel in the left panel (Blueprint Files). | |
| Vector | m_lastViewportPanning = Vector(0.0f, 0.0f) |
| Canvas panning saved by ResetViewportBeforeSave() for restoration in AfterSave(). | |
| bool | m_viewportResetDone = false |
| True after ResetViewportBeforeSave() has been called and before AfterSave(). | |
| ConditionPresetRegistry | m_presetRegistry |
| Global registry of ConditionPreset objects. | |
| std::unique_ptr< DynamicDataPinManager > | m_pinManager |
| Dynamic pin manager shared across all Branch nodes in this panel. | |
| std::unique_ptr< NodeBranchRenderer > | m_branchRenderer |
| Specialized renderer for Branch nodes (4-section layout with conditions). | |
| std::unique_ptr< NodeConditionsPanel > | m_conditionsPanel |
| Properties-panel sub-widget for the selected Branch node. | |
| std::unique_ptr< MathOpPropertyPanel > | m_mathOpPanel |
| Properties-panel sub-widget for the selected MathOp node. | |
| std::unique_ptr< GetBBValuePropertyPanel > | m_getBBPanel |
| Properties-panel sub-widget for the selected GetBBValue node. | |
| std::unique_ptr< SetBBValuePropertyPanel > | m_setBBPanel |
| Properties-panel sub-widget for the selected SetBBValue node. | |
| std::unique_ptr< VariablePropertyPanel > | m_variablePanel |
| Properties-panel sub-widget for the selected Variable node (data pure). | |
| std::unique_ptr< ConditionPresetLibraryPanel > | m_libraryPanel |
| Global condition preset library panel (UI for creating/editing/deleting presets). | |
| std::unique_ptr< SwitchCaseEditorModal > | m_switchCaseModal |
| Phase 26 — Switch Case Editor Modal. | |
| std::unique_ptr< SubGraphFilePickerModal > | m_subGraphModal |
| Phase 26 — SubGraph File Picker Modal. | |
| int | m_condPanelNodeID = -1 |
| ID of the node currently loaded into m_conditionsPanel (-1 = none). | |
| std::unique_ptr< EntityBlackboard > | m_entityBlackboard |
| Per-entity blackboard instance (combines local + global variables) Created in Initialize() and manages scope-aware access to both local and global vars. | |
| int | m_rightPanelTabSelection = 0 |
| Phase 26 — Right panel tab selection 0 = Presets, 1 = Local Variables, 2 = Global Variables. | |
| int | m_topPanelTabSelection = 0 |
| Top panel tab selection (Part A of right panel) 0 = Properties, 1 = Nodes. | |
| SelectionEffectRenderer | m_selectionRenderer |
| Renders glow effect for selected nodes (cyan halo + thickened border). | |
| std::unique_ptr< ImNodesCanvasEditor > | m_canvasEditor |
| Canvas editor adapter for minimap support (Phase 37) Abstracts imnodes minimap rendering through ICanvasEditor interface. | |
| bool | m_minimapVisible = true |
| Minimap visibility flag for VisualScript canvas. | |
| float | m_minimapSize = 0.15f |
| Minimap size ratio (0.05-0.5 of canvas) | |
| int | m_minimapPosition = 1 |
| Minimap position (0=TopLeft, 1=TopRight, 2=BottomLeft, 3=BottomRight) | |
| int | m_lastClickNodeID = -1 |
| Node ID of the last left-click (for double-click detection) | |
| float | m_lastClickTime = 0.0f |
| Frame time of the last left-click (seconds, from ImGui::GetTime()) | |
Static Public Attributes | |
| static constexpr float | DOUBLE_CLICK_THRESHOLD = 0.3f |
| Threshold for detecting double-click (300ms) | |
Private Member Functions | |
| void | PerformUndo () |
| Undoes the last command and syncs the canvas (nodes + links). | |
| void | PerformRedo () |
| Re-applies the last undone command and syncs the canvas. | |
| void | RenderToolbar () |
| void | RenderSaveAsDialog () |
| void | RenderCanvas () |
| void | RenderNodePalette () |
| void | RenderContextMenus () |
| Render node/link context menus opened by right-click detection. | |
| void | RenderProperties () |
| void | RenderGlobalVariablesPanel () |
| Phase 24 Global Blackboard — Renders global variables panel. | |
| void | RenderBranchNodeProperties (VSEditorNode &eNode, TaskNodeDefinition &def) |
| Renders the Properties panel content for a selected Branch (or While) node. | |
| void | RenderMathOpNodeProperties (VSEditorNode &eNode, TaskNodeDefinition &def) |
| Renders the Properties panel content for a selected MathOp node. | |
| void | RenderSwitchNodeProperties (VSEditorNode &eNode, TaskNodeDefinition &def) |
| Renders the Properties panel content for a selected Switch node (Phase 1). | |
| void | RenderNodeDataParameters (TaskNodeDefinition &def) |
| Renders node parameters for data nodes (GetBBValue, SetBBValue, MathOp). | |
| void | RenderBlackboard () |
| void | RenderValidationOverlay () |
| void | RenderBreakpoints () |
| void | RenderNodePropertiesPanel () |
| Part A: Node Properties panel (top-left of right panel) | |
| void | RenderNodePropertiesPanelContent () |
| Phase 31 — Content of Properties tab in Part A. | |
| void | RenderAvailableNodesList () |
| Phase 31 — Nodes list tab in Part A (available nodes for dragging to canvas) | |
| void | RenderWhileNodeProperties () |
| Phase 24 — Property panel renderers for While, ForEach, and SubGraph nodes. | |
| void | RenderForEachNodeProperties () |
| void | RenderSubGraphNodeProperties () |
| void | RenderPresetBankPanel () |
| Part B: Preset Bank panel (middle of right panel) | |
| void | RenderPresetItemCompact (const ConditionPreset &preset, size_t index) |
| Render a single preset item in compact horizontal format with index. | |
| void | RenderRightPanelTabs () |
| Phase 26 — Tab system: Renders the tab bar for the 3-panel right section Displays tabs for Presets, Local Variables, and Global Variables. | |
| void | RenderRightPanelTabContent () |
| Phase 26 — Tab system: Renders the content of the active tab Dispatches to appropriate render function based on m_rightPanelTabSelection. | |
| bool | RenderOperandEditor (Operand &operand, const char *labelSuffix) |
| Render a single operand with dropdown for mode and value editor Returns true if the operand was modified. | |
| void | RenderLocalVariablesPanel () |
| Part C: Local Variables reference panel (bottom of right panel) | |
| void | RenderVerificationPanel () |
| Renders the verification results panel (Phase 21-B). | |
| void | RunVerification () |
| Runs VSGraphVerifier on the current graph and stores the result. | |
| void | RunGraphSimulation () |
| Simulates runtime execution of the current graph and logs traces. | |
| void | RunGraphSimulationRecursive (const TaskGraphTemplate *tmpl, std::map< std::string, TaskValue > &blackboard, std::unordered_set< std::string > &visitedGraphs, int recursionDepth, const std::string &traceIndent) |
| Internal recursive simulation function with cycle detection. | |
| void | EvaluateDataNode (int32_t nodeID, int depth, const std::string &indent) |
| Helper to recursively evaluate data nodes (MathOp, GetBBValue, etc.) and trace their execution. | |
| void | TraceUpstreamDataNodes (int32_t sourceNodeID, const std::string &indent, std::unordered_set< int > &visitedDataNodes) |
| Recursively traces all upstream pure data nodes in the graph. | |
| std::string | GetNodePropertyString (const TaskNodeDefinition &node) |
| Gets a comprehensive property string for any node type. | |
| std::string | FormatTaskParameters (const std::unordered_map< std::string, ParameterBinding > ¶meters, const std::string &indent) |
| Format task parameters into a readable string. | |
ImNodes graph editor for ATS Visual Script v4 graphs.
Typical usage:
Definition at line 136 of file VisualScriptEditorPanel.h.
| Olympe::VisualScriptEditorPanel::VisualScriptEditorPanel | ( | ) |
VisualScriptEditorPanel Constructor.
Initializes the save-as filename buffer with a default "untitled_graph" name. This is called when a new editor panel tab is created for editing a blueprint graph.
Definition at line 42 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and m_saveAsFilename.
Here is the call graph for this function:| Olympe::VisualScriptEditorPanel::~VisualScriptEditorPanel | ( | ) |
VisualScriptEditorPanel Destructor.
Cleanup is deferred to Shutdown() to ensure proper sequencing of resource deallocation in the context of a tabbed editor interface.
Definition at line 48 of file VisualScriptEditorPanel - backup.cpp.
| int Olympe::VisualScriptEditorPanel::AddNode | ( | TaskNodeType | type, |
| float | x, | ||
| float | y | ||
| ) |
Creates a new node on the canvas.
Create a new node and add it to the editor canvas and template graph.
| type | Node type. |
| x | Canvas X position. |
| y | Canvas Y position. |
Allocates a new unique node ID, creates a TaskNodeDefinition with type-specific initialization, and pushes an AddNodeCommand to the undo stack for reversibility.
For special node types, this method initializes data pins:
EntryPoint Special Case: If this is the first EntryPoint created, it is marked as the template's entry and root node (m_template.EntryPointID and m_template.RootNodeID).
Position Validation: Non-finite or out-of-range coordinates are clamped to prevent JSON corruption or viewport issues. Clamped coordinates default to (0, 0).
Undo/Redo Integration: The node is added to both the editor canvas (m_editorNodes) and the template model via AddNodeCommand, ensuring Ctrl+Z removes the node.
| type | The TaskNodeType to create (EntryPoint, Branch, MathOp, etc.) |
| x | Canvas X position (will be clamped to [-100000, 100000]) |
| y | Canvas Y position (will be clamped to [-100000, 100000]) |
Definition at line 284 of file VisualScriptEditorPanel - backup.cpp.
References AllocNodeID(), Olympe::MathOpOperand::Const, Olympe::MathOpOperand::constValue, Olympe::TaskNodeDefinition::DataPins, Olympe::EntryPoint, Olympe::TaskGraphTemplate::EntryPointID, Olympe::Float, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::GetNodeTypeLabel(), Olympe::Input, Olympe::MathOpRef::leftOperand, Olympe::Literal, m_dirty, m_editorNodes, m_template, m_undoStack, m_verificationDone, Olympe::MathOp, Olympe::MathOpRef::mathOperator, Olympe::TaskNodeDefinition::mathOpRef, Olympe::MathOpOperand::mode, Olympe::NODE_INDEX_NONE, Olympe::VSEditorNode::nodeID, Olympe::TaskNodeDefinition::NodeID, Olympe::TaskNodeDefinition::NodeName, Olympe::None, Olympe::Output, Olympe::TaskNodeDefinition::Parameters, Olympe::DataPinDefinition::PinName, Olympe::UndoRedoStack::PushCommand(), Olympe::MathOpRef::rightOperand, Olympe::TaskGraphTemplate::RootNodeID, Olympe::SetBBValue, SYSTEM_LOG, Olympe::ParameterBinding::Type, and Olympe::TaskNodeDefinition::Type.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::AfterSave | ( | ) |
Restores the ImNodes canvas panning saved by ResetViewportBeforeSave().
AfterSave.
BUG-003 Fix #5 (optional UX continuity): call after SerializeAndWrite() so the viewport does not visually jump for the user.
Restore the ImNodes viewport panning to its pre-save state. This completes BUG-003 fix #5: viewport restoration.
Called at the end of Save() / SaveAs() after serialization completes. Without this restoration, the user would see the canvas visually jump to (0, 0) panning every time they save.
If ResetViewportBeforeSave() was not called (or Save cancelled), this is a no-op (guarded by m_viewportResetDone flag).
Definition at line 1853 of file VisualScriptEditorPanel - backup.cpp.
References SYSTEM_LOG.
Referenced by Save(), and SaveAs().
Here is the caller graph for this function:| int Olympe::VisualScriptEditorPanel::AllocLinkID | ( | ) |
Allocate a unique link ID.
Returns the next available link ID and increments the internal counter. Each connection between nodes must have a unique ID for:
Definition at line 172 of file VisualScriptEditorPanel - backup.cpp.
References m_nextLinkID.
Referenced by RebuildLinks().
Here is the caller graph for this function:| int Olympe::VisualScriptEditorPanel::AllocNodeID | ( | ) |
Allocate a unique node ID.
Returns the next available node ID and increments the internal counter. Each node in the editor canvas must have a unique ID for:
Definition at line 167 of file VisualScriptEditorPanel - backup.cpp.
References m_nextNodeID.
Referenced by AddNode().
Here is the caller graph for this function:Builds a human-readable preview string for a condition.
Format: "[Left] <op> [Right]", e.g. "[Var: health] > [Const: 50]".
| cond | The condition to describe. |
Definition at line 4901 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::CommitPendingBlackboardEdits | ( | ) |
Commits any pending key-name edits stored in m_pendingBlackboardEdits.
CommitPendingBlackboardEdits.
Flushes deferred InputText changes so that the template reflects the most recent user input before Save is attempted.
Flush any deferred blackboard entry key-name edits to the template. When the user is editing a variable key name in the UI, the change is stored in m_pendingBlackboardEdits (a map of index -> new key name) to defer costly operations until the edit is complete or save is triggered.
This method is called before serialization (Save/SaveAs) to ensure all user edits are persisted. After flushing, m_pendingBlackboardEdits is cleared.
Bounds checking is performed to prevent out-of-range access.
Definition at line 1820 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and Key.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::ConnectData | ( | int | srcNodeID, |
| const std::string & | srcPinName, | ||
| int | dstNodeID, | ||
| const std::string & | dstPinName | ||
| ) |
Creates a data connection between two nodes.
Create a data pin connection (value link) between two nodes.
Connects a data output pin on a source node to a data input pin on a destination node. Data connections carry computed or retrieved values (not control flow).
Data-Pure Nodes: Phase 24 introduces data-pure nodes that have no execution pins but only data connections:
These nodes can be chained to build data flow networks independent of control flow.
Dynamic Data Pins: Branch nodes have dynamic input pins (Pin-in) derived from their condition definitions. Condition names become pin names for data connections.
Undo/Redo Integration: The connection is pushed as an AddDataConnectionCommand, enabling Ctrl+Z to remove the link.
Pin Naming: Pin names are semantic strings:
| srcNodeID | ID of the source node (must be valid) |
| srcPinName | Name of the data output pin (must match GetDataOutputPins or dynamic pins) |
| dstNodeID | ID of the destination node (must be valid) |
| dstPinName | Name of the data input pin (must match GetDataInputPins or dynamic pins) |
Definition at line 433 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), m_dirty, m_template, m_undoStack, m_verificationDone, Olympe::UndoRedoStack::PushCommand(), RebuildLinks(), and Olympe::DataPinConnection::SourceNodeID.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::ConnectExec | ( | int | srcNodeID, |
| const std::string & | srcPinName, | ||
| int | dstNodeID, | ||
| const std::string & | dstPinName | ||
| ) |
Creates an exec connection between two nodes.
Create an execution pin connection (flow link) between two nodes.
| srcNodeID | Source node ID. |
| srcPinName | Source exec-out pin name (e.g. "Then"). |
| dstNodeID | Destination node ID. |
| dstPinName | Destination exec-in pin name (usually "In"). |
Connects an output execution pin on a source node to an input execution pin on a destination node. Execution connections control the control flow (order of execution) in the task graph.
This method validates neither the source nor destination — validation is handled by CanCreateLink() or other connection validation logic in RenderCanvas().
Undo/Redo Integration: The connection is pushed to the undo stack as an AddConnectionCommand, enabling Ctrl+Z to remove the link.
Link Rebuilding: After creating the connection, RebuildLinks() synchronizes ImNodes with the new template state so the visual link appears on screen.
Pin Naming: Pin names are semantic strings:
| srcNodeID | ID of the source node (must be valid) |
| srcPinName | Name of the output execution pin (must match GetExecOutputPins) |
| dstNodeID | ID of the destination node (must be valid) |
| dstPinName | Name of the input execution pin (must match GetExecInputPins) |
Definition at line 413 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), m_dirty, m_template, m_undoStack, m_verificationDone, Olympe::UndoRedoStack::PushCommand(), RebuildLinks(), and Olympe::ExecPinConnection::SourceNodeID.
Here is the call graph for this function:Maps node ID + data pin index -> ImNodes attribute UID for data-in pins.
Generate a unique attribute UID for a data input pin of a node.
Formula: nodeID * 10000 + 200 + pinIndex
Data input pins carry variable/parameter values from other nodes:
Data pins are distinct from execution pins and can coexist on the same node.
| nodeID | The node's unique ID |
| pinIndex | The index of the input pin (0–99) |
Definition at line 195 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by RebuildLinks().
Here is the call graph for this function:
Here is the caller graph for this function:Maps node ID + data pin index -> ImNodes attribute UID for data-out pins.
Generate a unique attribute UID for a data output pin of a node.
Formula: nodeID * 10000 + 300 + pinIndex
Data output pins carry computed or retrieved values to downstream nodes:
| nodeID | The node's unique ID |
| pinIndex | The index of the output pin (0–99) |
Definition at line 200 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by RebuildLinks().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Helper to recursively evaluate data nodes (MathOp, GetBBValue, etc.) and trace their execution.
Used when data pins reference other nodes.
| nodeID | ID of the data node to evaluate |
| depth | Current trace indentation depth |
| indent | Indentation string prefix for logs |
Definition at line 1400 of file VisualScriptEditorPanel_Verification.cpp.
References ADD_TRACE, Olympe::MathOpOperand::Const, Olympe::GetBBValue, GetComponentTypeID_Static(), m_template, Olympe::MathOp, Olympe::TaskGraphTemplate::Nodes, Olympe::MathOpOperand::Pin, and Olympe::MathOpOperand::Variable.
Here is the call graph for this function:Maps node ID -> ImNodes attribute UID for an exec-in pin.
Generate a unique attribute UID for the execution input pin of a node.
Formula: nodeID * 10000 + 0
The execution input (or "In" pin) is where the node receives execution flow from previous nodes. Only one exec-in pin per node is allowed.
| nodeID | The node's unique ID |
Definition at line 185 of file VisualScriptEditorPanel - backup.cpp.
Referenced by RebuildLinks().
Here is the caller graph for this function:Maps node ID + pin index -> ImNodes attribute UID for exec-out pins.
Generate a unique attribute UID for an execution output pin of a node.
Formula: nodeID * 10000 + 100 + pinIndex
Execution output pins (or "Out" pins) are where the node sends execution flow to downstream nodes. A node may have multiple exec-out pins for control flow:
| nodeID | The node's unique ID |
| pinIndex | The index of the output pin (0–99) |
Definition at line 190 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by RebuildLinks().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Format task parameters into a readable string.
Extracts parameter names and values for display in traces.
| parameters | Parameter binding map from a task node |
| indent | Indentation string prefix for formatting |
Definition at line 1469 of file VisualScriptEditorPanel_Verification.cpp.
References GetComponentTypeID_Static(), Olympe::Literal, Olympe::ParameterBinding::LiteralValue, Olympe::LocalVariable, and Olympe::TaskValue::to_string().
Here is the call graph for this function:
|
inline |
Returns the currently loaded file path (empty if unsaved).
Definition at line 189 of file VisualScriptEditorPanel.h.
References m_currentPath.
Referenced by Olympe::VisualScriptRenderer::GetCurrentPath().
Here is the caller graph for this function:
|
static |
Returns the data-in pin names for a node type.
Get the static data input pins for a given node type.
Returns a list of pin names that represent VALUE inputs to a node. Data pins are distinct from execution pins and carry variable values:
Phase 24 Notes:
| type | The node type to query |
Definition at line 257 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::Branch, Olympe::MathOp, and Olympe::SetBBValue.
Referenced by RebuildLinks(), and RemoveLink().
Here is the caller graph for this function:
|
static |
Returns the data-out pin names for a node type.
Get the static data output pins for a given node type.
Returns a list of pin names that represent VALUE outputs from a node. Data pins carry computed or retrieved values to downstream nodes:
Phase 24 Notes:
| type | The node type to query |
Definition at line 270 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::GetBBValue, and Olympe::MathOp.
Referenced by RebuildLinks(), and RemoveLink().
Here is the caller graph for this function:
|
static |
Returns the exec-in pin names for a node type.
Get the static execution input pins for a given node type.
Returns a list of pin names that represent the execution control flow INTO a node. Most nodes have a single "In" pin, but some special nodes have no exec-in:
All other node types receive execution from upstream via an "In" pin.
| type | The node type to query |
Definition at line 209 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::EntryPoint, Olympe::GetBBValue, and Olympe::MathOp.
Referenced by RemoveLink().
Here is the caller graph for this function:
|
static |
Returns the exec-out pin names for a node type.
Get the static execution output pins for a given node type.
Returns a list of pin names that represent the execution control flow OUT OF a node. Different node types have different numbers of exec-out pins based on their semantics:
VSSequence and Switch nodes may add dynamic pins at runtime, so use GetExecOutputPinsForNode() to include those.
| type | The node type to query |
Definition at line 224 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::AtomicTask, Olympe::Branch, Olympe::Delay, Olympe::DoOnce, Olympe::EntryPoint, Olympe::ForEach, Olympe::GetBBValue, Olympe::MathOp, Olympe::SetBBValue, Olympe::SubGraph, Olympe::Switch, Olympe::VSSequence, and Olympe::While.
Referenced by GetExecOutputPinsForNode(), RebuildLinks(), and RemoveLink().
Here is the caller graph for this function:| std::vector< std::string > Olympe::VisualScriptEditorPanel::GetExecOutputPinsForNode | ( | const TaskNodeDefinition & | def | ) | const |
Returns exec-out pin names for a node definition, including any dynamically-added pins (VSSequence).
Get execution output pins for a node, including dynamic pins.
This is the full version of GetExecOutputPins() that accounts for dynamically added pins. Some node types (VSSequence, Switch) can have user-added exec-out pins that are not in the static list:
For all other node types, this returns the same as GetExecOutputPins().
IMPORTANT ARCHITECTURE NOTE (Phase 1-3 Unification Fix): ───────────────────────────────────────────────────────── DynamicExecOutputPins is a DERIVED CACHE that must be kept synchronized with the semantic authority data (switchCases for Switch nodes, sequenceSteps for VSSequence).
SOURCES OF TRUTH:
DERIVED (Auto-Generated):
REGENERATION TRIGGERS: Phase 1 (Properties): After modal Apply, regenerated in RenderSwitchNodeProperties() Phase 2 (Load): After loading from JSON in TaskGraphLoader::ParseNodeV4() Phase 3 (Canvas): Modal opened for safe editing instead of direct modification
DEPRECATED DIRECT MODIFICATION: Do NOT modify DynamicExecOutputPins directly (except for VSSequence which has its own direct-add system). Always use the modal for Switch nodes.
| def | The node definition to query |
Definition at line 245 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::DynamicExecOutputPins, GetComponentTypeID_Static(), GetExecOutputPins(), Olympe::Switch, Olympe::TaskNodeDefinition::Type, and Olympe::VSSequence.
Here is the call graph for this function:
|
private |
Gets a comprehensive property string for any node type.
Returns all relevant properties formatted for display in traces.
| node | The node definition to describe |
Definition at line 1633 of file VisualScriptEditorPanel_Verification.cpp.
References Olympe::AtomicTask, Olympe::Branch, Olympe::Delay, Olympe::DoOnce, Olympe::EntryPoint, Olympe::ForEach, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::MathOp, Olympe::SetBBValue, Olympe::SubGraph, Olympe::Switch, Olympe::VSSequence, and Olympe::While.
Referenced by RunGraphSimulation().
Here is the call graph for this function:
Here is the caller graph for this function:| std::string Olympe::VisualScriptEditorPanel::GetNodeSubGraphPath | ( | const TaskNodeDefinition & | def | ) | const |
Extracts SubGraph file path from a node definition.
| def | The node definition to check. |
Returns the SubGraphPath if the node is a SubGraph type and has a valid path set. Otherwise returns an empty string.
| def | The node definition to check |
Definition at line 199 of file VisualScriptEditorPanel_Helpers.cpp.
References Olympe::SubGraph, Olympe::TaskNodeDefinition::SubGraphPath, and Olympe::TaskNodeDefinition::Type.
Referenced by OnNodeDoubleClicked().
Here is the caller graph for this function:
|
inline |
Returns a reference to the internal template being edited.
Used by tests to inspect the state.
Definition at line 235 of file VisualScriptEditorPanel.h.
References m_template.
|
static |
Returns a filtered subset of blackboard entries matching a type.
GetVariablesByType.
UX Enhancement #3 — used by type-filtered variable dropdowns so that, e.g., a Switch node only shows Int variables in its combo box.
| allVars | Full blackboard variable list to filter. |
| expectedType | The VariableType to keep. |
Static helper method to filter blackboard entries by variable type. Returns a new vector containing only entries whose Type matches expectedType.
This is used in UI panels to populate variable dropdowns with only compatible types. For example, when connecting a data pin to a variable, only variables of the matching type are shown in the dropdown.
Example usage: std::vector<BlackboardEntry> intVars = GetVariablesByType( m_template.Blackboard, VariableType::Int);
| allVars | Input list of all blackboard entries |
| expectedType | Desired variable type to filter by |
Definition at line 1883 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::Initialize | ( | ) |
Initialize the editor panel with ImNodes context and UI helpers.
Called when a blueprint is loaded into the editor (e.g., when a tab is opened). Sets up:
Phase 24 Enhancement (Condition Preset Embedding):
Callback Setup:
Definition at line 52 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::conditionRefs, Olympe::VSEditorNode::def, GetComponentTypeID_Static(), Olympe::ConditionPresetRegistry::LoadFromPresetList(), m_branchRenderer, m_conditionsPanel, m_dirty, m_editorNodes, m_entityBlackboard, m_getBBPanel, m_imnodesContext, m_libraryPanel, m_mathOpPanel, m_pinManager, m_presetRegistry, m_selectedNodeID, m_setBBPanel, m_template, m_variablePanel, Olympe::TaskGraphTemplate::Name, Olympe::TaskGraphTemplate::Nodes, Olympe::TaskGraphTemplate::Presets, and SYSTEM_LOG.
Referenced by Olympe::BlueprintEditorGUI::Initialize(), and Olympe::VisualScriptRenderer::VisualScriptRenderer().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Returns true when there are unsaved modifications.
Definition at line 194 of file VisualScriptEditorPanel.h.
References m_dirty.
Referenced by Olympe::VisualScriptRenderer::IsDirty().
Here is the caller graph for this function:
|
inline |
Returns true if the panel window is visible.
Definition at line 157 of file VisualScriptEditorPanel.h.
References m_visible.
| void Olympe::VisualScriptEditorPanel::LoadTemplate | ( | const TaskGraphTemplate * | tmpl, |
| const std::string & | path | ||
| ) |
Loads a VS graph template into the editor canvas.
| tmpl | Non-null pointer to the template to load. |
| path | File path associated with the template (for Save). |
Definition at line 929 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskGraphTemplate::BuildLookupCache(), Olympe::ConditionPresetRegistry::Clear(), GetComponentTypeID_Static(), Olympe::TaskGraphTemplate::GlobalVariableValues, Olympe::ConditionPresetRegistry::LoadFromPresetList(), m_currentPath, m_dirty, m_entityBlackboard, m_nodeDragStartPositions, m_presetRegistry, m_template, m_verificationDone, Olympe::TaskGraphTemplate::Name, Olympe::TaskGraphTemplate::Presets, Olympe::GlobalTemplateBlackboard::Reload(), SyncCanvasFromTemplate(), and SYSTEM_LOG.
Referenced by Olympe::VisualScriptRenderer::Load().
Here is the call graph for this function:
Here is the caller graph for this function:Handles double-click on a node (opens SubGraph, etc).
| nodeID | ID of the node that was double-clicked. |
If the node is a SubGraph type with a file path set, opens that file in a new tab via TabManager::OpenFileInTab().
| nodeID | ID of the node that was double-clicked |
Definition at line 216 of file VisualScriptEditorPanel_Helpers.cpp.
References Olympe::TabManager::Get(), GetComponentTypeID_Static(), GetNodeSubGraphPath(), m_editorNodes, Olympe::TabManager::OpenFileInTab(), and SYSTEM_LOG.
Here is the call graph for this function:
|
private |
Re-applies the last undone command and syncs the canvas.
Definition at line 1940 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and SYSTEM_LOG.
Here is the call graph for this function:
|
private |
Undoes the last command and syncs the canvas (nodes + links).
Calls SyncEditorNodesFromTemplate() + RebuildLinks() so that ghost links are eliminated and node positions are restored correctly.
Definition at line 1904 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and SYSTEM_LOG.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RebuildLinks | ( | ) |
Rebuilds ImNodes exec/data link arrays from the template.
RebuildLinks.
Reconstruct all visual links (m_editorLinks) from template connections (m_template.ExecConnections and m_template.DataConnections).
Process:
Attribute ID encoding scheme (nodeID * 10000 + offset): 0–99: exec-in pins (exec input for node) 100–199: exec-out pins (exec outputs indexed by position) 200–299: data-in pins (data inputs indexed by position) 300–399: data-out pins (data outputs indexed by position)
This method is resilient to missing nodes and out-of-range pin indices, defaulting to "Value" or "In"/"Out" pin names as fallback.
Definition at line 540 of file VisualScriptEditorPanel - backup.cpp.
References AllocLinkID(), Olympe::Branch, Olympe::TaskGraphTemplate::DataConnections, DataInAttrUID(), DataOutAttrUID(), Olympe::TaskGraphTemplate::ExecConnections, ExecInAttrUID(), ExecOutAttrUID(), GetComponentTypeID_Static(), GetDataInputPins(), GetDataOutputPins(), GetExecOutputPins(), Olympe::TaskGraphTemplate::GetNode(), Olympe::Input, Olympe::VSEditorLink::linkID, m_editorLinks, m_template, Olympe::Output, Olympe::Switch, and Olympe::VSSequence.
Referenced by ConnectData(), ConnectExec(), RemoveLink(), RemoveNode(), SyncCanvasFromTemplate(), and SyncEditorNodesFromTemplate().
Here is the call graph for this function:
Here is the caller graph for this function:Removes an ImNodes link (and its underlying template connection) by link ID.
RemoveLink.
| linkID | The ImNodes link UID to remove. |
Delete a link and push a DeleteLinkCommand onto the undo stack. This integrates link deletion with the undo/redo system for reversible operations.
Process:
Attribute ID decoding:
| linkID | ImNodes link ID to delete |
Definition at line 826 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), GetDataInputPins(), GetDataOutputPins(), GetExecInputPins(), GetExecOutputPins(), Olympe::TaskGraphTemplate::GetNode(), m_dirty, m_editorLinks, m_template, m_undoStack, m_verificationDone, Olympe::UndoRedoStack::PushCommand(), RebuildLinks(), Olympe::ExecPinConnection::SourceNodeID, Olympe::DataPinConnection::SourceNodeID, Olympe::VSEditorLink::srcAttrID, Olympe::Switch, and Olympe::VSSequence.
Here is the call graph for this function:Removes a node from the canvas.
Remove a node from the editor canvas and template graph.
| nodeID | Node ID to remove. |
Deletes the node by ID from both the editor canvas state (m_editorNodes) and the template model (via DeleteNodeCommand). All execution and data connections involving this node are automatically removed by the command system.
Undo/Redo Integration: The deletion is pushed to the undo stack as a DeleteNodeCommand, allowing Ctrl+Z to restore the node and its connections.
Link Rebuilding: After node removal, RebuildLinks() is called to ensure all remaining connections are valid and ImNodes is synchronized with the new canvas state.
| nodeID | The ID of the node to remove (must exist in m_editorNodes) |
Definition at line 395 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), m_dirty, m_editorNodes, m_template, m_undoStack, m_verificationDone, Olympe::UndoRedoStack::PushCommand(), and RebuildLinks().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::Render | ( | ) |
Renders the full panel window.
Calls RenderToolbar(), RenderCanvas(), RenderProperties(), RenderBlackboard().
Definition at line 1970 of file VisualScriptEditorPanel - backup.cpp.
|
private |
Phase 31 — Nodes list tab in Part A (available nodes for dragging to canvas)
Definition at line 1980 of file VisualScriptEditorPanel_Properties.cpp.
References Olympe::AtomicTask, Olympe::Branch, Olympe::Delay, Olympe::DoOnce, Olympe::EntryPoint, Olympe::ForEach, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::MathOp, Olympe::SetBBValue, Olympe::SubGraph, Olympe::Switch, Olympe::VSSequence, and Olympe::While.
Here is the call graph for this function:
|
private |
Definition at line 4141 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and Olympe::BlackboardEntry::Key.
Here is the call graph for this function:
|
private |
Renders the Properties panel content for a selected Branch (or While) node.
Displays a blue header with the node name (matching the canvas Section 1 title bar styling), then delegates to NodeConditionsPanel::Render() for the compact structured-conditions list, and finishes with a Breakpoint checkbox.
The caller (RenderProperties) must return immediately after this call to prevent the legacy condition UI from also rendering.
| eNode | Reference to the selected editor node (modified when dirty). |
| def | Reference to the node's TaskNodeDefinition (modified when dirty). |
Definition at line 3394 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::conditionRefs, Olympe::TaskNodeDefinition::dynamicPins, GetComponentTypeID_Static(), and Olympe::TaskNodeDefinition::NodeName.
Referenced by RenderNodePropertiesPanelContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
|
private |
Definition at line 2334 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::VSEditorNode::def, Olympe::TaskNodeDefinition::DynamicExecOutputPins, GetComponentTypeID_Static(), Olympe::GetNodeTypeLabel(), Olympe::NodeBranchData::nodeID, Olympe::DataPinDefinition::PinName, SYSTEM_LOG, and Olympe::ExecPinConnection::TargetNodeID.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderConditionEditor | ( | Condition & | condition, |
| int | conditionIndex, | ||
| const std::vector< BlackboardEntry > & | allVars, | ||
| const std::vector< std::string > & | availablePins | ||
| ) |
Renders the full editor UI for one Condition entry on a Branch/While node.
Shows left/right mode selectors (Pin | Variable | Const), value inputs, an operator combo, and a live preview line.
| condition | Reference to the condition being edited (modified in place). |
| conditionIndex | 0-based index used for ImGui PushID uniqueness. |
| allVars | Full blackboard entry list for variable dropdowns. |
| availablePins | List of available pin references for Pin mode. |
Definition at line 4578 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderConstValueInput | ( | TaskValue & | value, |
| VariableType | varType, | ||
| const char * | label | ||
| ) |
Renders a type-aware const value input widget.
Bool -> Checkbox, Int -> InputInt, Float -> InputFloat, String -> InputText, Vector -> InputFloat3.
| value | TaskValue to edit (modified on change). |
| varType | Determines which widget to display. |
| label | ImGui widget label. |
Definition at line 4778 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskValue::AsBool(), Olympe::TaskValue::AsFloat(), Olympe::TaskValue::AsInt(), Olympe::TaskValue::AsString(), Olympe::TaskValue::AsVector(), GetComponentTypeID_Static(), Olympe::TaskValue::IsNone(), and Vector::x.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderContent | ( | ) |
Renders panel content without window wrapper - for fixed layout.
Definition at line 1983 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by Olympe::VisualScriptRenderer::Render().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Render node/link context menus opened by right-click detection.
Must be called AFTER EndNodeEditor() so popups are in correct ImGui scope.
Definition at line 3299 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), Olympe::VSEditorNode::nodeID, Olympe::TaskNodeDefinition::NodeID, and SYSTEM_LOG.
Here is the call graph for this function:
|
private |
Definition at line 543 of file VisualScriptEditorPanel_Properties.cpp.
References Olympe::TaskGraphTemplate::Blackboard, Olympe::ForEach, GetComponentTypeID_Static(), Olympe::List, m_dirty, m_selectedNodeID, m_template, and Olympe::TaskGraphTemplate::Nodes.
Referenced by RenderNodePropertiesPanelContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Phase 24 Global Blackboard — Renders global variables panel.
Shows variables from GlobalTemplateBlackboard with current entity values. Called from RenderContent() as part of tab-based blackboard UI.
Definition at line 5925 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskValue::AsBool(), Olympe::TaskValue::AsEntityID(), Olympe::TaskValue::AsFloat(), Olympe::TaskValue::AsInt(), Olympe::TaskValue::AsString(), GetComponentTypeID_Static(), Olympe::TaskValue::IsNone(), SYSTEM_LOG, and Vector::x.
Referenced by RenderRightPanelTabContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Part C: Local Variables reference panel (bottom of right panel)
Definition at line 5809 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and Olympe::BlackboardEntry::Key.
Referenced by RenderRightPanelTabContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Renders the Properties panel content for a selected MathOp node.
Displays a blue header with the node name, then delegates to MathOpPropertyPanel::Render() for operand and operator editing.
The caller (RenderProperties) must return immediately after this call to prevent any legacy UI from also rendering.
| eNode | Reference to the selected editor node (modified when dirty). |
| def | Reference to the node's TaskNodeDefinition (modified when dirty). |
Definition at line 3468 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::dynamicPins, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::mathOpRef, and Olympe::TaskNodeDefinition::NodeName.
Here is the call graph for this function:
|
private |
Renders node parameters for data nodes (GetBBValue, SetBBValue, MathOp).
Displays a parameters section that allows editing generic parameters that can be stored and serialized alongside node-specific properties.
| def | Reference to the node's TaskNodeDefinition (modified when dirty). |
Definition at line 3541 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), Olympe::BBVariableRegistry::LoadFromTemplate(), Olympe::TaskNodeDefinition::Parameters, and Olympe::ParameterBinding::Type.
Referenced by RenderNodePropertiesPanelContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 3228 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:
|
private |
Part A: Node Properties panel (top-left of right panel)
Definition at line 4947 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::AtomicTaskID, Olympe::TaskNodeDefinition::BBKey, Olympe::TaskNodeDefinition::conditionOperandRefs, Olympe::TaskNodeDefinition::conditionRefs, Olympe::MathOpOperand::constValue, Olympe::TaskNodeDefinition::DelaySeconds, Olympe::TaskNodeDefinition::dynamicPins, GetComponentTypeID_Static(), Olympe::MathOpRef::leftOperand, Olympe::BBVariableRegistry::LoadFromTemplate(), Olympe::MathOpRef::mathOperator, Olympe::TaskNodeDefinition::mathOpRef, Olympe::MathOpOperand::mode, Olympe::TaskNodeDefinition::NodeName, Olympe::TaskNodeDefinition::Parameters, Olympe::MathOpRef::rightOperand, Olympe::TaskNodeDefinition::SubGraphPath, Olympe::ParameterBinding::Type, Olympe::TaskNodeDefinition::Type, and Olympe::MathOpOperand::variableName.
Here is the call graph for this function:
|
private |
Phase 31 — Content of Properties tab in Part A.
Definition at line 1486 of file VisualScriptEditorPanel_Properties.cpp.
References Olympe::AtomicTask, Olympe::TaskNodeDefinition::AtomicTaskID, Olympe::TaskNodeDefinition::BBKey, Olympe::Branch, Olympe::TaskNodeDefinition::conditionOperandRefs, Olympe::TaskNodeDefinition::conditionRefs, Olympe::MathOpOperand::Const, Olympe::MathOpOperand::constValue, Olympe::Delay, Olympe::TaskNodeDefinition::DelaySeconds, Olympe::TaskNodeDefinition::dynamicPins, Olympe::ForEach, Olympe::PropertyValue::FromString(), Olympe::AtomicTaskUIRegistry::Get(), Olympe::DebugController::Get(), Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::AtomicTaskUIRegistry::GetSortedForUI(), Olympe::AtomicTaskUIRegistry::GetTaskSpec(), Olympe::DebugController::HasBreakpoint(), Olympe::MathOpRef::leftOperand, Olympe::Literal, Olympe::BBVariableRegistry::LoadFromTemplate(), m_conditionsPanel, m_condPanelNodeID, m_dirty, m_editorNodes, m_selectedNodeID, m_template, m_undoStack, Olympe::MathOp, Olympe::MathOpRef::mathOperator, Olympe::TaskNodeDefinition::mathOpRef, Olympe::MathOpOperand::mode, Olympe::TaskGraphTemplate::Name, Olympe::TaskNodeDefinition::NodeName, Olympe::TaskGraphTemplate::Nodes, Olympe::Parallel, Olympe::TaskNodeDefinition::Parameters, Olympe::MathOpOperand::Pin, Olympe::UndoRedoStack::PushCommand(), RenderBranchNodeProperties(), RenderForEachNodeProperties(), RenderNodeDataParameters(), RenderSubGraphNodeProperties(), RenderSwitchNodeProperties(), Olympe::MathOpRef::rightOperand, Olympe::Selector, Olympe::Sequence, Olympe::SetBBValue, Olympe::SubGraph, Olympe::Switch, Olympe::DebugController::ToggleBreakpoint(), Olympe::ParameterBinding::Type, Olympe::TaskNodeDefinition::Type, Olympe::MathOpOperand::Variable, Olympe::MathOpOperand::variableName, and Olympe::While.
Here is the call graph for this function:
|
private |
Render a single operand with dropdown for mode and value editor Returns true if the operand was modified.
Definition at line 5609 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderPinSelector | ( | std::string & | selectedPin, |
| const std::vector< std::string > & | availablePins, | ||
| const char * | label | ||
| ) |
Renders a pin selector combo box.
| selectedPin | Currently selected pin reference (modified on change). |
| availablePins | List of available pin reference strings. |
| label | ImGui widget label. |
Definition at line 4872 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:
|
private |
Part B: Preset Bank panel (middle of right panel)
Definition at line 5434 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by RenderRightPanelTabContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Render a single preset item in compact horizontal format with index.
Definition at line 5473 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:
|
private |
Definition at line 3722 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::AtomicTaskID, Olympe::TaskNodeDefinition::BBKey, Olympe::TaskNodeDefinition::DelaySeconds, GetComponentTypeID_Static(), Olympe::BBVariableRegistry::LoadFromTemplate(), Olympe::TaskNodeDefinition::NodeName, Olympe::TaskNodeDefinition::SubGraphPath, Olympe::TaskNodeDefinition::switchCases, Olympe::TaskNodeDefinition::switchVariable, and Olympe::TaskNodeDefinition::Type.
Here is the call graph for this function:
|
private |
Phase 26 — Tab system: Renders the content of the active tab Dispatches to appropriate render function based on m_rightPanelTabSelection.
Renders the content of the currently selected tab Dispatches to the appropriate render function based on m_rightPanelTabSelection
Definition at line 689 of file VisualScriptEditorPanel_Blackboard.cpp.
References m_rightPanelTabSelection, RenderGlobalVariablesPanel(), RenderLocalVariablesPanel(), and RenderPresetBankPanel().
Here is the call graph for this function:
|
private |
Phase 26 — Tab system: Renders the tab bar for the 3-panel right section Displays tabs for Presets, Local Variables, and Global Variables.
Renders the tab bar for selecting between Presets, Local Variables, and Global Variables Uses a horizontal button group with visual feedback for the active tab
Definition at line 631 of file VisualScriptEditorPanel_Blackboard.cpp.
References GetComponentTypeID_Static(), and m_rightPanelTabSelection.
Here is the call graph for this function:
|
private |
Definition at line 2216 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and SYSTEM_LOG.
Here is the call graph for this function:
|
private |
Definition at line 602 of file VisualScriptEditorPanel_Properties.cpp.
References Olympe::TaskGraphTemplate::Blackboard, GetComponentTypeID_Static(), Olympe::Literal, Olympe::LocalVariable, m_dirty, m_editorNodes, m_selectedNodeID, m_subGraphModal, m_template, Olympe::TaskGraphTemplate::Nodes, Olympe::SubGraph, SYSTEM_LOG, and Olympe::ParameterBinding::Type.
Referenced by RenderNodePropertiesPanelContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Renders the Properties panel content for a selected Switch node (Phase 1).
Displays a blue header with the node name, then renders:
Phase 1 Key Fix: After modal Apply, regenerates DynamicExecOutputPins from switchCases to ensure canvas pins are synchronized with semantic data.
| eNode | Reference to the selected editor node (modified when dirty). |
| def | Reference to the node's TaskNodeDefinition (modified when dirty). |
Definition at line 207 of file VisualScriptEditorPanel_Properties.cpp.
References Olympe::TaskNodeDefinition::DynamicExecOutputPins, Olympe::PropertyValue::FromString(), Olympe::DebugController::Get(), GetComponentTypeID_Static(), Olympe::DebugController::HasBreakpoint(), Olympe::Int, Olympe::BBVariableRegistry::LoadFromTemplate(), m_dirty, m_selectedNodeID, m_switchCaseModal, m_template, m_undoStack, Olympe::TaskGraphTemplate::Name, Olympe::TaskNodeDefinition::NodeName, Olympe::TaskGraphTemplate::Nodes, Olympe::UndoRedoStack::PushCommand(), RenderVerificationPanel(), Olympe::TaskNodeDefinition::switchCases, Olympe::TaskNodeDefinition::switchVariable, and Olympe::DebugController::ToggleBreakpoint().
Referenced by RenderNodePropertiesPanelContent().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 2111 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and SYSTEM_LOG.
Here is the call graph for this function:
|
private |
Definition at line 4316 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderVariableSelector | ( | std::string & | selectedVar, |
| const std::vector< BlackboardEntry > & | allVars, | ||
| VariableType | expectedType, | ||
| const char * | label | ||
| ) |
Renders a type-filtered variable selector combo box.
Only variables whose Type matches expectedType are shown.
| selectedVar | Currently selected variable name (modified on change). |
| allVars | Full blackboard entry list to filter. |
| expectedType | VariableType used to filter entries. |
| label | ImGui widget label. |
Definition at line 4720 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and Key.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::RenderVerificationLogsPanel | ( | ) |
Public render method for verification logs panel.
Called from BlueprintEditorGUI to display logs in the left panel.
Phase 24.3 — For integration into the main layout's verification logs section.
Definition at line 4477 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), and Olympe::VSVerificationIssue::message.
Referenced by Olympe::BlueprintEditorGUI::RenderFixedLayout().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Renders the verification results panel (Phase 21-B).
Definition at line 4394 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Referenced by RenderSwitchNodeProperties().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Phase 24 — Property panel renderers for While, ForEach, and SubGraph nodes.
| void Olympe::VisualScriptEditorPanel::ResetViewportBeforeSave | ( | ) |
Resets the ImNodes canvas panning to (0,0) before saving node positions.
ResetViewportBeforeSave.
BUG-003 Fix: Saves current panning in m_lastViewportPanning for optional restoration after save. Node positions are stored in grid space (independent of viewport pan) via GetNodeGridSpacePos(), so this reset is a belt-and- suspenders safety measure rather than strictly required.
Save the current ImNodes viewport panning state and reset panning to (0, 0). This is part of BUG-003 fix to prevent viewport jump when saving.
Rationale:
This is called at the very beginning of Save() / SaveAs().
Definition at line 1838 of file VisualScriptEditorPanel - backup.cpp.
References Vector::FromImVec2(), GetComponentTypeID_Static(), and SYSTEM_LOG.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Simulates runtime execution of the current graph and logs traces.
Definition at line 70 of file VisualScriptEditorPanel_Verification.cpp.
References ADD_TRACE, Olympe::AtomicTask, Olympe::TaskGraphTemplate::Blackboard, Olympe::Branch, Olympe::MathOpOperand::Const, Olympe::TaskGraphTemplate::DataConnections, Olympe::Delay, Olympe::EntryPoint, Olympe::TaskGraphTemplate::EntryPointID, Olympe::TaskGraphTemplate::ExecConnections, Olympe::ForEach, Olympe::GetBBValue, GetComponentTypeID_Static(), GetNodePropertyString(), Olympe::Literal, Olympe::ParameterBinding::LiteralValue, Olympe::TaskGraphLoader::LoadFromFile(), Olympe::LocalVariable, m_executionTokenStack, m_simulationDone, m_simulationTraces, m_template, m_verificationDone, m_verificationLogs, Olympe::MathOp, Olympe::TaskGraphTemplate::Name, Olympe::NODE_INDEX_NONE, Olympe::ExecutionToken::nodeID, Olympe::TaskGraphTemplate::Nodes, Olympe::TaskGraphTemplate::RootNodeID, RunGraphSimulationRecursive(), Olympe::SetBBValue, Olympe::ExecPinConnection::SourcePinName, Olympe::SubGraph, Olympe::Switch, SYSTEM_LOG, Olympe::TaskValue::to_string(), TraceUpstreamDataNodes(), Olympe::MathOpOperand::Variable, Olympe::VSSequence, and Olympe::While.
Here is the call graph for this function:
|
private |
Internal recursive simulation function with cycle detection.
| tmpl | The graph template to simulate |
| blackboard | Current execution blackboard (isolated per SubGraph) |
| visitedGraphs | Set of visited graph file paths (for cycle detection) |
| recursionDepth | Current recursion depth (0 for root call) |
| traceIndent | Indentation prefix for trace messages |
Phase 25: Tracks visited graph files and recursion depth to prevent infinite loops. Warns at depth > 10, stops at depth >= 20.
Definition at line 1708 of file VisualScriptEditorPanel_Verification.cpp.
References ADD_TRACE, Olympe::AtomicTask, Olympe::Branch, Olympe::EntryPoint, Olympe::GetBBValue, GetComponentTypeID_Static(), Olympe::Literal, Olympe::TaskGraphLoader::LoadFromFile(), Olympe::NODE_INDEX_NONE, Olympe::ExecutionToken::nodeID, RunGraphSimulationRecursive(), Olympe::SetBBValue, Olympe::SubGraph, Olympe::ExecPinConnection::TargetNodeID, and Olympe::VSSequence.
Referenced by RunGraphSimulation(), and RunGraphSimulationRecursive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Runs VSGraphVerifier on the current graph and stores the result.
Definition at line 4359 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), Olympe::VSVerificationIssue::message, and SYSTEM_LOG.
Here is the call graph for this function:| bool Olympe::VisualScriptEditorPanel::Save | ( | ) |
Saves the current canvas state to JSON v4 at the loaded path.
Definition at line 1001 of file VisualScriptEditorPanel - backup.cpp.
References AfterSave(), Olympe::Branch, CommitPendingBlackboardEdits(), GetComponentTypeID_Static(), Olympe::TaskGraphTemplate::GlobalVariableValues, m_conditionsPanel, m_currentPath, m_editorNodes, m_entityBlackboard, m_selectedNodeID, m_template, Olympe::TaskGraphTemplate::Nodes, ResetViewportBeforeSave(), SerializeAndWrite(), SyncNodePositionsFromImNodes(), SyncPresetsFromRegistryToTemplate(), SYSTEM_LOG, and ValidateAndCleanBlackboardEntries().
Referenced by Olympe::VisualScriptRenderer::Save().
Here is the call graph for this function:
Here is the caller graph for this function:Saves the current canvas state to a new JSON v4 file.
| path | Destination file path. |
Definition at line 1077 of file VisualScriptEditorPanel - backup.cpp.
References AfterSave(), CommitPendingBlackboardEdits(), GetComponentTypeID_Static(), Olympe::TaskGraphTemplate::GlobalVariableValues, m_currentPath, m_dirty, m_entityBlackboard, m_template, ResetViewportBeforeSave(), SerializeAndWrite(), SyncNodePositionsFromImNodes(), SyncPresetsFromRegistryToTemplate(), SYSTEM_LOG, and ValidateAndCleanBlackboardEntries().
Referenced by Olympe::VisualScriptRenderer::Save().
Here is the call graph for this function:
Here is the caller graph for this function:Converts a screen-space position to canvas (editor) space.
ScreenToCanvasPos.
| screenPos | Position in absolute screen-pixel coordinates. |
Correct conversion: removes canvas origin and viewport pan, then divides by zoom (ImNodes 0.4 has no zoom, zoom is always 1.0f).
Convert absolute screen-space coordinates to ImNodes editor (canvas) space. Used for context menu positioning, mouse hit testing, and UI interactions.
The transformation is: canvasX = screenX - windowPos.x - panning.x canvasY = screenY - windowPos.y - panning.y
where:
| screenPos | Absolute screen-space coordinate |
Definition at line 1865 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:Serializes the template to JSON v4 and writes to a file.
Definition at line 1190 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskValue::AsBool(), Olympe::AtomicTask, Olympe::TaskNodeDefinition::AtomicTaskID, Olympe::AtomicTaskID, Olympe::TaskNodeDefinition::BBKey, Olympe::TaskGraphTemplate::Blackboard, Olympe::Bool, Olympe::Branch, Olympe::ComparisonOp, Olympe::TaskNodeDefinition::ConditionID, Olympe::ConditionID, Olympe::TaskNodeDefinition::conditionOperandRefs, Olympe::TaskNodeDefinition::conditionRefs, Olympe::TaskNodeDefinition::conditions, Olympe::OperandRef::Const, Olympe::TaskGraphTemplate::DataConnections, Olympe::Delay, Olympe::TaskNodeDefinition::DelaySeconds, Olympe::TaskNodeDefinition::DynamicExecOutputPins, Olympe::EntityID, Olympe::TaskGraphTemplate::ExecConnections, Olympe::Float, GetComponentTypeID_Static(), Olympe::GetNodeTypeLabel(), Olympe::TaskGraphTemplate::GlobalVariableValues, Olympe::TaskNodeDefinition::InputParams, Olympe::Int, Olympe::Literal, Olympe::LocalVariable, m_dirty, m_editorNodes, m_template, Olympe::MathOp, Olympe::MathOpRef::mathOperator, Olympe::TaskNodeDefinition::MathOperator, Olympe::MathOperator, Olympe::TaskNodeDefinition::mathOpRef, Olympe::TaskGraphTemplate::Name, Olympe::TaskNodeDefinition::NodeID, Olympe::TaskNodeDefinition::NodeName, Olympe::TaskGraphTemplate::Nodes, Olympe::None, Olympe::TaskNodeDefinition::OutputParams, Olympe::TaskNodeDefinition::Parameters, Olympe::OperandRef::Pin, Olympe::TaskGraphTemplate::Presets, Olympe::String, Olympe::SubGraph, Olympe::TaskNodeDefinition::SubGraphPath, Olympe::SubGraphPath, Olympe::Switch, Olympe::TaskNodeDefinition::switchCases, Olympe::TaskNodeDefinition::switchVariable, SyncTemplateFromCanvas(), SYSTEM_LOG, Olympe::MathOpRef::ToJson(), Olympe::TaskNodeDefinition::Type, Olympe::OperandRef::Variable, Olympe::VariableTypeToString(), Olympe::Vector, Olympe::VSSequence, Olympe::While, and Vector::x.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:Show / hide the panel.
Definition at line 160 of file VisualScriptEditorPanel.h.
References GetComponentTypeID_Static(), and m_visible.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::Shutdown | ( | ) |
Shutdown the editor panel and release all resources.
Called when a blueprint editor tab is closed or the application exits. Performs cleanup in the correct order:
Phase 24 Notes:
Definition at line 140 of file VisualScriptEditorPanel - backup.cpp.
References m_branchRenderer, m_conditionsPanel, m_condPanelNodeID, m_editorLinks, m_editorNodes, m_getBBPanel, m_imnodesContext, m_libraryPanel, m_mathOpPanel, m_pinManager, m_positionedNodes, m_setBBPanel, and m_variablePanel.
Referenced by Olympe::BlueprintEditorGUI::Shutdown(), and Olympe::VisualScriptRenderer::~VisualScriptRenderer().
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::SyncCanvasFromTemplate | ( | ) |
Builds the editor canvas from the in-memory TaskGraphTemplate.
SyncCanvasFromTemplate.
Load all nodes from m_template into the editor canvas representation (m_editorNodes). This is the primary method for initializing the canvas from a loaded/pasted blueprint.
Process:
Position validation: Checks for finite values and ±100,000 bounds. This prevents crashes from corrupted JSON (e.g., NaN, ±Infinity). Garbage values are logged and replaced with auto-layout positions.
Phase 24 integration: Branch nodes' dynamic pins are regenerated from conditionRefs to ensure data-in connectors are available even if not explicitly saved.
Definition at line 457 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::Branch, Olympe::TaskNodeDefinition::conditionOperandRefs, Olympe::TaskNodeDefinition::conditionRefs, Olympe::TaskNodeDefinition::EditorPosX, Olympe::TaskNodeDefinition::EditorPosY, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::HasEditorPos, m_editorNodes, m_needsPositionSync, m_nextNodeID, m_pinManager, m_positionedNodes, m_template, Olympe::VSEditorNode::nodeID, Olympe::TaskNodeDefinition::NodeID, Olympe::TaskGraphTemplate::Nodes, RebuildLinks(), SYSTEM_LOG, and Olympe::TaskNodeDefinition::Type.
Referenced by LoadTemplate().
Here is the call graph for this function:
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::SyncEditorNodesFromTemplate | ( | ) |
Rebuilds m_editorNodes from m_template, preserving existing node positions.
SyncEditorNodesFromTemplate.
Called after Undo/Redo to synchronise the canvas with the template state.
Restore editor nodes (m_editorNodes) from m_template during undo/redo operations. This is more complex than SyncCanvasFromTemplate because it must:
Position fallback order:
Process:
Definition at line 689 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskNodeDefinition::EditorPosX, Olympe::TaskNodeDefinition::EditorPosY, GetComponentTypeID_Static(), Olympe::TaskNodeDefinition::HasEditorPos, Olympe::Literal, m_editorNodes, m_needsPositionSync, m_nextNodeID, m_nodeDragStartPositions, m_positionedNodes, m_template, Olympe::VSEditorNode::nodeID, Olympe::TaskNodeDefinition::NodeID, Olympe::TaskGraphTemplate::Nodes, Olympe::TaskNodeDefinition::Parameters, RebuildLinks(), and SYSTEM_LOG.
Here is the call graph for this function:| void Olympe::VisualScriptEditorPanel::SyncNodePositionsFromImNodes | ( | ) |
Pulls the current node positions from ImNodes into m_editorNodes.
Only nodes that have been rendered at least once (present in m_positionedNodes) are updated to avoid ImNodes assertions. Must be called before serialization to capture user-moved positions.
Definition at line 1124 of file VisualScriptEditorPanel - backup.cpp.
References GetComponentTypeID_Static(), Olympe::Literal, m_editorNodes, m_positionedNodes, m_template, Olympe::TaskGraphTemplate::Nodes, and Olympe::ParameterBinding::Type.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::SyncPresetsFromRegistryToTemplate | ( | ) |
Syncs ALL presets from the registry to the template.
Phase 24 FIX: Ensures that presets created/modified via UI are included in save. Previously, only presets modified via operand editor were synced; newly created presets were missed. Now called before serialization to guarantee completeness.
Definition at line 1165 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::ConditionPresetRegistry::GetAllPresetIDs(), GetComponentTypeID_Static(), Olympe::ConditionPresetRegistry::GetPreset(), m_presetRegistry, m_template, Olympe::TaskGraphTemplate::Presets, and SYSTEM_LOG.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::SyncTemplateFromCanvas | ( | ) |
Builds the in-memory TaskGraphTemplate from the editor nodes/links.
SyncTemplateFromCanvas.
Update m_template.Nodes with the current state of m_editorNodes. This is called before serialization (Save/SaveAs) to reflect user edits on the canvas.
Process:
Definition at line 529 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskGraphTemplate::BuildLookupCache(), GetComponentTypeID_Static(), m_editorNodes, m_template, and Olympe::TaskGraphTemplate::Nodes.
Referenced by SerializeAndWrite().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Recursively traces all upstream pure data nodes in the graph.
Walks data connections backward to show complete data dependency chains.
| sourceNodeID | ID of the node to trace upstream from |
| indent | Indentation string prefix for logs |
| visitedDataNodes | Set of visited node IDs (prevents cycles) |
Definition at line 1500 of file VisualScriptEditorPanel_Verification.cpp.
References ADD_TRACE, Olympe::MathOpOperand::Const, Olympe::TaskGraphTemplate::DataConnections, Olympe::GetBBValue, GetComponentTypeID_Static(), m_template, Olympe::MathOp, Olympe::NODE_INDEX_NONE, Olympe::TaskGraphTemplate::Nodes, TraceUpstreamDataNodes(), and Olympe::MathOpOperand::Variable.
Referenced by RunGraphSimulation(), and TraceUpstreamDataNodes().
Here is the call graph for this function:
Here is the caller graph for this function:| void Olympe::VisualScriptEditorPanel::ValidateAndCleanBlackboardEntries | ( | ) |
Removes blackboard entries with empty keys or VariableType::None.
ValidateAndCleanBlackboardEntries.
Called before serialization (Fix #1) to guarantee the blackboard is clean. Logs each removed entry to SYSTEM_LOG.
Remove invalid blackboard entries from the template's blackboard list. Entries with empty keys or VariableType::None are considered invalid and are filtered out to prevent serialization crashes and UI inconsistencies.
Invalid entries can occur when:
This method is called before Save() and SaveAs() to ensure a clean state. Removed entries are logged for debugging; m_dirty is set to track changes.
Definition at line 1790 of file VisualScriptEditorPanel - backup.cpp.
References Olympe::TaskGraphTemplate::Blackboard, GetComponentTypeID_Static(), m_template, and Olympe::None.
Referenced by Save(), and SaveAs().
Here is the call graph for this function:
Here is the caller graph for this function:| bool Olympe::VisualScriptEditorPanel::ValidateBlackboardEntry | ( | const BlackboardEntry & | entry | ) |
Validates a complete blackboard entry.
ValidateBlackboardEntry.
Checks that the entry has a non-empty key and a valid type.
| entry | The entry to validate |
Validates a complete blackboard entry for consistency. Checks that the entry has both a key and a valid type.
| entry | The entry to validate |
Definition at line 305 of file VisualScriptEditorPanel_Utilities.cpp.
References GetComponentTypeID_Static().
Here is the call graph for this function:| BlackboardValidationResult Olympe::VisualScriptEditorPanel::ValidateBlackboardKey | ( | const std::string & | key, |
| bool | isGlobal, | ||
| int | excludeIndex = -1 |
||
| ) |
Validates a blackboard key according to schema rules.
ValidateBlackboardKey.
Rules:
| key | The key to validate |
| isGlobal | Whether this is a global variable |
| excludeIndex | Skip duplicate check for entry at index (-1 = check all) |
Validates a blackboard entry key according to the following rules:
| key | The key string to validate |
| isGlobal | Whether this is a global variable |
| excludeIndex | Skip duplicate check for entry at this index (-1 = check all) |
Definition at line 256 of file VisualScriptEditorPanel_Utilities.cpp.
References Olympe::BlackboardValidationResult::ErrorMessage, GetComponentTypeID_Static(), Olympe::BlackboardValidationResult::IsValid, and Olympe::BlackboardValidationResult::WarningMessage.
Here is the call graph for this function:Threshold for detecting double-click (300ms)
Definition at line 988 of file VisualScriptEditorPanel.h.
| std::unique_ptr<NodeBranchRenderer> Olympe::VisualScriptEditorPanel::m_branchRenderer |
Specialized renderer for Branch nodes (4-section layout with conditions).
Definition at line 902 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
| std::unique_ptr<ImNodesCanvasEditor> Olympe::VisualScriptEditorPanel::m_canvasEditor |
Canvas editor adapter for minimap support (Phase 37) Abstracts imnodes minimap rendering through ICanvasEditor interface.
Definition at line 966 of file VisualScriptEditorPanel.h.
| std::unique_ptr<NodeConditionsPanel> Olympe::VisualScriptEditorPanel::m_conditionsPanel |
Properties-panel sub-widget for the selected Branch node.
Definition at line 905 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), RenderNodePropertiesPanelContent(), Save(), and Shutdown().
| int Olympe::VisualScriptEditorPanel::m_condPanelNodeID = -1 |
ID of the node currently loaded into m_conditionsPanel (-1 = none).
Definition at line 929 of file VisualScriptEditorPanel.h.
Referenced by RenderNodePropertiesPanelContent(), and Shutdown().
| int Olympe::VisualScriptEditorPanel::m_contextLinkID = -1 |
Link ID captured at the moment a right-click context menu was opened on a link.
Definition at line 785 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_contextMenuX = 0.0f |
Right-click paste position.
Definition at line 778 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_contextMenuY = 0.0f |
Definition at line 779 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_contextNodeID = -1 |
Node ID captured at the moment a right-click context menu was opened on a node.
Definition at line 782 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_currentPath |
Definition at line 722 of file VisualScriptEditorPanel.h.
Referenced by GetCurrentPath(), LoadTemplate(), Save(), and SaveAs().
Definition at line 699 of file VisualScriptEditorPanel.h.
Referenced by AddNode(), ConnectData(), ConnectExec(), Initialize(), IsDirty(), LoadTemplate(), RemoveLink(), RemoveNode(), RenderForEachNodeProperties(), RenderNodePropertiesPanelContent(), RenderSubGraphNodeProperties(), RenderSwitchNodeProperties(), SaveAs(), and SerializeAndWrite().
| std::vector<VSEditorLink> Olympe::VisualScriptEditorPanel::m_editorLinks |
Editor links (exec + data)
Definition at line 731 of file VisualScriptEditorPanel.h.
Referenced by RebuildLinks(), RemoveLink(), and Shutdown().
| std::vector<VSEditorNode> Olympe::VisualScriptEditorPanel::m_editorNodes |
Editor nodes (mirrors m_template.Nodes + position/selection state)
Definition at line 728 of file VisualScriptEditorPanel.h.
Referenced by AddNode(), Initialize(), OnNodeDoubleClicked(), RemoveNode(), RenderNodePropertiesPanelContent(), RenderSubGraphNodeProperties(), Save(), SerializeAndWrite(), Shutdown(), SyncCanvasFromTemplate(), SyncEditorNodesFromTemplate(), SyncNodePositionsFromImNodes(), and SyncTemplateFromCanvas().
| std::unique_ptr<EntityBlackboard> Olympe::VisualScriptEditorPanel::m_entityBlackboard |
Per-entity blackboard instance (combines local + global variables) Created in Initialize() and manages scope-aware access to both local and global vars.
Definition at line 937 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), LoadTemplate(), Save(), and SaveAs().
| std::vector<ExecutionToken> Olympe::VisualScriptEditorPanel::m_executionTokenStack |
Phase 24.4 — Execution token stack for multi-branch simulation Enables proper handling of Sequence nodes with multiple branches.
Definition at line 772 of file VisualScriptEditorPanel.h.
Referenced by RunGraphSimulation().
| int Olympe::VisualScriptEditorPanel::m_focusNodeID = -1 |
Node ID to focus/scroll to on next RenderCanvas() frame (-1 = none)
Definition at line 775 of file VisualScriptEditorPanel.h.
| std::unique_ptr<GetBBValuePropertyPanel> Olympe::VisualScriptEditorPanel::m_getBBPanel |
Properties-panel sub-widget for the selected GetBBValue node.
Definition at line 911 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
| ImNodesEditorContext* Olympe::VisualScriptEditorPanel::m_imnodesContext = nullptr |
Definition at line 706 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
Set to true immediately after Undo/Redo; blocks node movement tracking for 1 frame to allow ImNodes to render the new positions before resuming normal position sync.
Prevents stale drag-start positions.
Definition at line 720 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_lastClickNodeID = -1 |
Node ID of the last left-click (for double-click detection)
Definition at line 982 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_lastClickTime = 0.0f |
Frame time of the last left-click (seconds, from ImGui::GetTime())
Definition at line 985 of file VisualScriptEditorPanel.h.
Canvas panning saved by ResetViewportBeforeSave() for restoration in AfterSave().
Definition at line 885 of file VisualScriptEditorPanel.h.
| std::unique_ptr<ConditionPresetLibraryPanel> Olympe::VisualScriptEditorPanel::m_libraryPanel |
Global condition preset library panel (UI for creating/editing/deleting presets).
Definition at line 920 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
| std::unique_ptr<MathOpPropertyPanel> Olympe::VisualScriptEditorPanel::m_mathOpPanel |
Properties-panel sub-widget for the selected MathOp node.
Definition at line 908 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
| int Olympe::VisualScriptEditorPanel::m_minimapPosition = 1 |
Minimap position (0=TopLeft, 1=TopRight, 2=BottomLeft, 3=BottomRight)
Definition at line 975 of file VisualScriptEditorPanel.h.
Minimap size ratio (0.05-0.5 of canvas)
Definition at line 972 of file VisualScriptEditorPanel.h.
Minimap visibility flag for VisualScript canvas.
Definition at line 969 of file VisualScriptEditorPanel.h.
Definition at line 710 of file VisualScriptEditorPanel.h.
Referenced by SyncCanvasFromTemplate(), and SyncEditorNodesFromTemplate().
| int Olympe::VisualScriptEditorPanel::m_nextLinkID = 1 |
Next available ImNodes link ID.
Definition at line 740 of file VisualScriptEditorPanel.h.
Referenced by AllocLinkID().
| int Olympe::VisualScriptEditorPanel::m_nextNodeID = 1 |
Next available node ID.
Definition at line 737 of file VisualScriptEditorPanel.h.
Referenced by AllocNodeID(), SyncCanvasFromTemplate(), and SyncEditorNodesFromTemplate().
| std::unordered_map<int, std::pair<float, float> > Olympe::VisualScriptEditorPanel::m_nodeDragStartPositions |
Per-node drag-start positions used to record a single MoveNodeCommand per drag gesture instead of one command per frame.
Key: nodeID Value: (posX, posY) at the moment the drag was detected.
Definition at line 824 of file VisualScriptEditorPanel.h.
Referenced by LoadTemplate(), and SyncEditorNodesFromTemplate().
| float Olympe::VisualScriptEditorPanel::m_nodePropertiesPanelHeight = 0.0f |
Height of the Node Properties panel (Part A) in the right panel.
Adjusted by the drag-to-resize handle between Part A and Part B.
Definition at line 869 of file VisualScriptEditorPanel.h.
Definition at line 700 of file VisualScriptEditorPanel.h.
Pending dynamic pin addition (from [+] button clicked in canvas)
Definition at line 813 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_pendingAddPinNodeID = -1 |
Definition at line 814 of file VisualScriptEditorPanel.h.
| std::unordered_map<int, std::string> Olympe::VisualScriptEditorPanel::m_pendingBlackboardEdits |
Deferred key-name edits for blackboard entries: index -> pending new key.
Committed in CommitPendingBlackboardEdits() before Save.
Definition at line 857 of file VisualScriptEditorPanel.h.
True when a node drop is pending processing this frame.
Definition at line 833 of file VisualScriptEditorPanel.h.
| TaskNodeType Olympe::VisualScriptEditorPanel::m_pendingNodeType = TaskNodeType::EntryPoint |
Definition at line 834 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_pendingNodeX = 0.0f |
Definition at line 835 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_pendingNodeY = 0.0f |
Definition at line 836 of file VisualScriptEditorPanel.h.
Pending dynamic pin removal (from [-] button clicked in canvas)
Definition at line 817 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_pendingRemovePinDynIdx = -1 |
0-based index in DynamicExecOutputPins
Definition at line 819 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_pendingRemovePinNodeID = -1 |
Definition at line 818 of file VisualScriptEditorPanel.h.
| std::unique_ptr<DynamicDataPinManager> Olympe::VisualScriptEditorPanel::m_pinManager |
Dynamic pin manager shared across all Branch nodes in this panel.
Definition at line 899 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), Shutdown(), and SyncCanvasFromTemplate().
| std::unordered_set<int> Olympe::VisualScriptEditorPanel::m_positionedNodes |
Nodes for which ImNodes has been given a position.
Definition at line 734 of file VisualScriptEditorPanel.h.
Referenced by Shutdown(), SyncCanvasFromTemplate(), SyncEditorNodesFromTemplate(), and SyncNodePositionsFromImNodes().
| float Olympe::VisualScriptEditorPanel::m_presetBankPanelHeight = 0.0f |
Height of the Preset Bank panel (Part B) in the right panel.
Adjusted by the drag-to-resize handle between Part B and Part C.
Definition at line 873 of file VisualScriptEditorPanel.h.
| ConditionPresetRegistry Olympe::VisualScriptEditorPanel::m_presetRegistry |
Global registry of ConditionPreset objects.
Loaded from Blueprints/Presets/condition_presets.json on Initialize().
Definition at line 896 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), LoadTemplate(), and SyncPresetsFromRegistryToTemplate().
| int Olympe::VisualScriptEditorPanel::m_propEditNodeIDOnFocus = -1 |
Node ID that was selected when RenderProperties() last entered focus.
Definition at line 794 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldBBKey |
Definition at line 800 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldConditionID |
Definition at line 799 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_propEditOldDelay = 0.0f |
Definition at line 803 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldMathOp |
Definition at line 801 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldName |
Snapshot values captured at focus time for each editable field.
Definition at line 797 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldSubGraphPath |
Definition at line 802 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditOldTaskID |
Definition at line 798 of file VisualScriptEditorPanel.h.
| std::vector<SwitchCaseDefinition> Olympe::VisualScriptEditorPanel::m_propEditSwitchCases |
Per-case label edit buffers.
Definition at line 807 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_propEditSwitchVar |
Live buffer for switchVariable field.
Definition at line 806 of file VisualScriptEditorPanel.h.
| float Olympe::VisualScriptEditorPanel::m_propertiesPanelWidth = 0.0f |
Width of the properties+blackboard panel on the right.
Adjusted by the drag-to-resize handle between the canvas and the panel.
Definition at line 865 of file VisualScriptEditorPanel.h.
| int Olympe::VisualScriptEditorPanel::m_rightPanelTabSelection = 0 |
Phase 26 — Right panel tab selection 0 = Presets, 1 = Local Variables, 2 = Global Variables.
Definition at line 941 of file VisualScriptEditorPanel.h.
Referenced by RenderRightPanelTabContent(), and RenderRightPanelTabs().
| std::string Olympe::VisualScriptEditorPanel::m_saveAsDirectory = "Blueprints/AI" |
Currently selected destination directory.
Definition at line 847 of file VisualScriptEditorPanel.h.
| std::string Olympe::VisualScriptEditorPanel::m_saveAsExtension = ".ats" |
Extension to append when saving (derived from m_currentPath; defaults to ".ats")
Definition at line 849 of file VisualScriptEditorPanel.h.
| char Olympe::VisualScriptEditorPanel::m_saveAsFilename[256] |
Buffer for the user-entered filename (without extension)
Definition at line 845 of file VisualScriptEditorPanel.h.
Referenced by VisualScriptEditorPanel().
| int Olympe::VisualScriptEditorPanel::m_selectedNodeID = -1 |
Currently selected node (for properties panel)
Definition at line 743 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), RenderForEachNodeProperties(), RenderNodePropertiesPanelContent(), RenderSubGraphNodeProperties(), RenderSwitchNodeProperties(), and Save().
| SelectionEffectRenderer Olympe::VisualScriptEditorPanel::m_selectionRenderer |
Renders glow effect for selected nodes (cyan halo + thickened border).
Integrated into node rendering loop for correct scope and z-ordering. Provides unified selection UX across all canvas types.
Definition at line 958 of file VisualScriptEditorPanel.h.
| std::unique_ptr<SetBBValuePropertyPanel> Olympe::VisualScriptEditorPanel::m_setBBPanel |
Properties-panel sub-widget for the selected SetBBValue node.
Definition at line 914 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
True when the "Save As" modal should be opened next frame.
Definition at line 843 of file VisualScriptEditorPanel.h.
True if simulation has been run.
Definition at line 768 of file VisualScriptEditorPanel.h.
Referenced by RunGraphSimulation().
| std::vector<std::string> Olympe::VisualScriptEditorPanel::m_simulationTraces |
Simulation execution traces (populated by RunGraphSimulation()) Phase 24.4 — added to verification logs for display.
Definition at line 765 of file VisualScriptEditorPanel.h.
Referenced by RunGraphSimulation().
Set to true by Undo/Redo; causes next frame to skip SyncNodePositionsFromImNodes() so that the positions applied by SyncEditorNodesFromTemplate() are not overwritten by stale ImNodes state before the new positions have been rendered once.
Definition at line 715 of file VisualScriptEditorPanel.h.
| std::unique_ptr<SubGraphFilePickerModal> Olympe::VisualScriptEditorPanel::m_subGraphModal |
Phase 26 — SubGraph File Picker Modal.
Definition at line 926 of file VisualScriptEditorPanel.h.
Referenced by RenderSubGraphNodeProperties().
| std::unique_ptr<SwitchCaseEditorModal> Olympe::VisualScriptEditorPanel::m_switchCaseModal |
Phase 26 — Switch Case Editor Modal.
Definition at line 923 of file VisualScriptEditorPanel.h.
Referenced by RenderSwitchNodeProperties().
| TaskGraphTemplate Olympe::VisualScriptEditorPanel::m_template |
The template currently being edited.
Definition at line 725 of file VisualScriptEditorPanel.h.
Referenced by AddNode(), ConnectData(), ConnectExec(), EvaluateDataNode(), GetTemplate(), Initialize(), LoadTemplate(), RebuildLinks(), RemoveLink(), RemoveNode(), RenderForEachNodeProperties(), RenderNodePropertiesPanelContent(), RenderSubGraphNodeProperties(), RenderSwitchNodeProperties(), RunGraphSimulation(), Save(), SaveAs(), SerializeAndWrite(), SyncCanvasFromTemplate(), SyncEditorNodesFromTemplate(), SyncNodePositionsFromImNodes(), SyncPresetsFromRegistryToTemplate(), SyncTemplateFromCanvas(), TraceUpstreamDataNodes(), and ValidateAndCleanBlackboardEntries().
| int Olympe::VisualScriptEditorPanel::m_topPanelTabSelection = 0 |
Top panel tab selection (Part A of right panel) 0 = Properties, 1 = Nodes.
Definition at line 945 of file VisualScriptEditorPanel.h.
| UndoRedoStack Olympe::VisualScriptEditorPanel::m_undoStack |
Undo/Redo command stack for reversible graph editing operations.
Definition at line 810 of file VisualScriptEditorPanel.h.
Referenced by AddNode(), ConnectData(), ConnectExec(), RemoveLink(), RemoveNode(), RenderNodePropertiesPanelContent(), and RenderSwitchNodeProperties().
| std::vector<std::string> Olympe::VisualScriptEditorPanel::m_validationErrors |
Definition at line 747 of file VisualScriptEditorPanel.h.
| std::vector<std::string> Olympe::VisualScriptEditorPanel::m_validationWarnings |
Validation messages (rebuilt each frame)
Definition at line 746 of file VisualScriptEditorPanel.h.
| std::unique_ptr<VariablePropertyPanel> Olympe::VisualScriptEditorPanel::m_variablePanel |
Properties-panel sub-widget for the selected Variable node (data pure).
Definition at line 917 of file VisualScriptEditorPanel.h.
Referenced by Initialize(), and Shutdown().
True once RunVerification() has been called at least once for the current graph.
Definition at line 757 of file VisualScriptEditorPanel.h.
Referenced by AddNode(), ConnectData(), ConnectExec(), LoadTemplate(), RemoveLink(), RemoveNode(), and RunGraphSimulation().
| std::vector<std::string> Olympe::VisualScriptEditorPanel::m_verificationLogs |
Verification log messages (populated by RunVerification()) Phase 24.3 — for display in the verification output panel.
Definition at line 761 of file VisualScriptEditorPanel.h.
Referenced by RunGraphSimulation().
| float Olympe::VisualScriptEditorPanel::m_verificationLogsPanelHeight = 0.0f |
Height of the Verification Logs panel in the left panel (Blueprint Files).
Adjusted by the drag-to-resize handle between Blueprint Files and Logs. Phase 24.3 — Added for verification output logging in left panel
Definition at line 878 of file VisualScriptEditorPanel.h.
| VSVerificationResult Olympe::VisualScriptEditorPanel::m_verificationResult |
Latest verification result (produced by RunVerification())
Definition at line 754 of file VisualScriptEditorPanel.h.
True after ResetViewportBeforeSave() has been called and before AfterSave().
Definition at line 888 of file VisualScriptEditorPanel.h.
Definition at line 698 of file VisualScriptEditorPanel.h.
Referenced by IsVisible(), and SetVisible().