graph LR
NodeGraphViewer["NodeGraphViewer"]
NodeGraphScene["NodeGraphScene"]
NodeItem["NodeItem"]
PortItem["PortItem"]
Pipe["Pipe"]
NodeGraphViewer -- "updates" --> NodeGraphScene
NodeGraphViewer -- "queries" --> NodeItem
NodeGraphScene -- "contains" --> NodeItem
NodeGraphScene -- "forwards events to" --> NodeGraphViewer
NodeItem -- "registers with" --> NodeGraphScene
NodeItem -- "creates" --> PortItem
PortItem -- "references" --> NodeItem
PortItem -- "manages" --> Pipe
Pipe -- "references" --> PortItem
Pipe -- "contained by" --> NodeGraphScene
The Graph View & Rendering subsystem encompasses the core visual components responsible for displaying and interacting with the node graph.
The primary interactive view component, acting as a QGraphicsView wrapper. It manages user input such as mouse events, zooming, and panning, and orchestrates the display of all graph elements. It also handles the visual logic for drawing connections (pipes).
Related Classes/Methods:
The underlying QGraphicsScene container that serves as the canvas for all graphical items. It manages item rendering, collision detection, and draws the background elements like grids or dots.
Related Classes/Methods:
The base graphical representation of a node within the QGraphicsScene. It defines the node's visual appearance, manages the layout of its internal elements (ports, widgets), and handles basic node-specific interactions like selection and movement.
Related Classes/Methods:
The graphical representation of a node's input or output port. It renders the port, manages its connection status, and provides visual feedback for potential connections.
Related Classes/Methods:
The graphical representation of a connection (edge) between two PortItem instances. It is responsible for drawing the connection path and handling visual highlighting (e.g., on hover or selection).
Related Classes/Methods: