Skip to content

Latest commit

 

History

History
89 lines (58 loc) · 7.34 KB

File metadata and controls

89 lines (58 loc) · 7.34 KB
graph LR
    Graph_Core["Graph Core"]
    Graph_Data_Model["Graph Data Model"]
    Graph_View_Rendering["Graph View & Rendering"]
    UI_Panels_Widgets["UI Panels & Widgets"]
    Interaction_Command_System["Interaction & Command System"]
    Graph_Core -- "Manages/Updates" --> Graph_Data_Model
    Graph_Data_Model -- "Notifies" --> Graph_Core
    Graph_Core -- "Controls/Observes" --> Graph_View_Rendering
    Graph_View_Rendering -- "Emits Events To (via Interaction & Command System)" --> Graph_Core
    Graph_Core -- "Updates/Receives Input From" --> UI_Panels_Widgets
    UI_Panels_Widgets -- "Interacts With" --> Graph_Core
    Graph_View_Rendering -- "Generates Input For" --> Interaction_Command_System
    UI_Panels_Widgets -- "Generates Input For" --> Interaction_Command_System
    Interaction_Command_System -- "Translates Input To" --> Graph_Core
    Graph_Data_Model -- "Notifies" --> Graph_View_Rendering
    click Graph_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/NodeGraphQt/Graph_Core.md" "Details"
    click Graph_Data_Model href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/NodeGraphQt/Graph_Data_Model.md" "Details"
    click Graph_View_Rendering href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/NodeGraphQt/Graph_View_Rendering.md" "Details"
    click UI_Panels_Widgets href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/NodeGraphQt/UI_Panels_Widgets.md" "Details"
Loading

CodeBoardingDemoContact

Details

The NodeGraphQt architecture is designed as a highly modular UI framework, primarily following an MVC-like pattern to manage complex visual programming graphs. At its heart, the Graph Core acts as the central controller, orchestrating all operations and maintaining the integrity of the graph's state. This state is meticulously stored within the Graph Data Model, which serves as the single source of truth for all graph elements (nodes, ports, connections). The visual representation and user interaction are handled by the Graph View & Rendering component, which displays the graph and captures user input. Auxiliary UI Panels & Widgets provide additional interactive elements for property editing and node creation. All user interactions from the view and panels are funneled through the Interaction & Command System, which translates them into discrete commands for the Graph Core. This clear separation ensures that data logic, presentation, and user interaction are distinct, promoting extensibility, maintainability, and a responsive user experience, making it ideal for visual diagram generation that highlights data and control flow between these well-defined components.

Graph Core [Expand]

The central controller and orchestrator of the node graph. Manages graph structure, node/connection lifecycle, session persistence, and high-level operations.

Related Classes/Methods:

Graph Data Model [Expand]

Represents the abstract data structures for the graph, including nodes, ports, and connections. Holds the graph's state independent of its visual representation.

Related Classes/Methods:

Graph View & Rendering [Expand]

The primary graphical view component. Responsible for displaying graph elements (nodes, ports, pipes) within a QGraphicsScene and QGraphicsView, handling rendering, visual layout, and low-level user interactions.

Related Classes/Methods:

UI Panels & Widgets [Expand]

Auxiliary user interface elements that complement the main graph view, such as the Properties Bin for editing node properties and the Node Palette for creating new nodes.

Related Classes/Methods:

Interaction & Command System

Handles user input, translates it into actionable commands, and manages the execution and undo/redo of these commands, bridging raw user input with the Graph Core's operations.

Related Classes/Methods: