BitQuirky.Graph.GraphView
Public bit quirky graph: editor symbols in BitQuirky.Graph.GraphView.
Source snapshot ad0983d00d77.
On this page
Assembly: BitQuirky.Graph.GraphView.Editor
ConnectionCandidate
Section titled “ConnectionCandidate”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.ConnectionCandidateSource declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:17-50
One candidate connection presented to the host-supplied ConnectionValidator(feature round-trip 067). Always normalized:FromNode/FromPort are the output side andToNode/ToPortthe input side, regardless of which pin the drag started on. The library consults the validator only for structurally legal pairs (one output, one input, matching exec/data family, allowed by the host’s self-edge policy, and not a duplicate).
Members
Section titled “Members”FromNode
Section titled “FromNode”public BitQuirky.Graph.NodeDefinition FromNode { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:20
The node on the output side of the candidate.
FromPort
Section titled “FromPort”public BitQuirky.Graph.PortDefinition FromPort { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:22
The port the connection would leave.
IsExecution
Section titled “IsExecution”public bool IsExecution { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:28
True when the candidate is a flow connection rather than a data connection.
ToNode
Section titled “ToNode”public BitQuirky.Graph.NodeDefinition ToNode { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:24
The node on the input side of the candidate.
ToPort
Section titled “ToPort”public BitQuirky.Graph.PortDefinition ToPort { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:26
The port the connection would enter.
ConnectionCandidate(NodeDefinition fromNode, PortDefinition fromPort, NodeDefinition toNode, PortDefinition toPort, bool isExecution)
Section titled “ConnectionCandidate(NodeDefinition fromNode, PortDefinition fromPort, NodeDefinition toNode, PortDefinition toPort, bool isExecution)”public ConnectionCandidate(BitQuirky.Graph.NodeDefinition fromNode, BitQuirky.Graph.PortDefinition fromPort, BitQuirky.Graph.NodeDefinition toNode, BitQuirky.Graph.PortDefinition toPort, bool isExecution)Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:37-49
Builds one candidate for the host’s validator. The caller must pass the pair already
normalized -fromNode/fromPortthe output side and
toNode/toPortthe input side - because the
validator is documented to receive it that way regardless of which pin the drag started
on.isExecutiondistinguishes a flow pair from a data pair.
ConnectionDragSource
Section titled “ConnectionDragSource”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.ConnectionDragSourceSource declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:45-72
Stable identity of the port where a connection drag began.
Responsibilities:
- Carry the source node and port identities through drag start and end notifications.
- Report source direction and execution family without retaining visual elements.
Does NOT:
- Describe the eventual target or decide whether the connection is valid.
- Retain a
PortView, node view, or other transient UI state.
Members
Section titled “Members”IsExecution
Section titled “IsExecution”public bool IsExecution { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:57
True when the source belongs to the execution connection family.
IsInput
Section titled “IsInput”public bool IsInput { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:54
True when the drag began on an input port.
NodeId
Section titled “NodeId”public System.Guid NodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:48
Durable identity of the node that owns the source port.
PortId
Section titled “PortId”public string PortId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:51
Stable port identity within NodeId.
ConnectionDragSource(Guid nodeId, string portId, bool isInput, bool isExecution)
Section titled “ConnectionDragSource(Guid nodeId, string portId, bool isInput, bool isExecution)”public ConnectionDragSource(System.Guid nodeId, string portId, bool isInput, bool isExecution)Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:60-71
Creates an immutable connection-drag source identity.
ConnectionDropRequest
Section titled “ConnectionDropRequest”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.ConnectionDropRequestSource declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:16-50
A renderer-agnostic observation that a pin drag was released over empty canvas (no target port) rather than over another pin. Carries only the source pin’s ids, whether it is an execution pin, and a graph-space release point - no host (Round Trip / Engine) types leak into the lib. It is raised INSTEAD of the silent cancel the drop-on-nothing case used to perform, so a host can open a context menu at the drop point (Round Trip feature 068). The host decides what the gesture means (e.g. a get/set-member menu) and whether the source pin is eligible; the lib makes no such decision.
Members
Section titled “Members”DropGraphPosition
Section titled “DropGraphPosition”public UnityEngine.Vector2 DropGraphPosition { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:46
The release point in graph space, for placing the created node.
DropWorldPosition
Section titled “DropWorldPosition”public UnityEngine.Vector2 DropWorldPosition { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:49
The release point in world (panel) space, for placing a menu via WorldToLocal.
FromNodeId
Section titled “FromNodeId”public System.Guid FromNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:37
The node that owns the pin the drag started from.
FromPortId
Section titled “FromPortId”public string FromPortId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:40
The id of the source pin the drag started from.
IsExecution
Section titled “IsExecution”public bool IsExecution { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:43
True when the source pin is an execution pin (so a data-only host can ignore it).
ConnectionDropRequest(Guid fromNodeId, string fromPortId, bool isExecution, Vector2 dropGraphPosition, Vector2 dropWorldPosition)
Section titled “ConnectionDropRequest(Guid fromNodeId, string fromPortId, bool isExecution, Vector2 dropGraphPosition, Vector2 dropWorldPosition)”public ConnectionDropRequest(System.Guid fromNodeId, string fromPortId, bool isExecution, UnityEngine.Vector2 dropGraphPosition, UnityEngine.Vector2 dropWorldPosition)Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:26-34
Records one drag released over empty canvas.fromNodeIdand
fromPortIdidentify the pin the drag started from,
isExecutionsays whether that pin is a flow pin so a data-only host
can ignore the gesture, and the two positions are the same release point in the two
spaces a host needs:dropGraphPositionto place a node and
dropWorldPositionto place a menu.
ConnectionRequest
Section titled “ConnectionRequest”Category: Low-level runtime
class BitQuirky.Graph.GraphView.ConnectionRequestSource declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:16-32
Normalized output-to-input connection requested by a completed drag.
Responsibilities:
- Carry stable endpoint identities and the connection family to an embedding host.
Does NOT:
- Mutate a graph or decide whether the requested connection is valid.
Members
Section titled “Members”FromNodeId
Section titled “FromNodeId”public System.Guid FromNodeId { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:19
Source node identity.
FromPortId
Section titled “FromPortId”public string FromPortId { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:22
Source output-port identity.
IsExecutionEdge
Section titled “IsExecutionEdge”public bool IsExecutionEdge { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:31
True when the request belongs to the execution connection family.
ToNodeId
Section titled “ToNodeId”public System.Guid ToNodeId { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:25
Destination node identity.
ToPortId
Section titled “ToPortId”public string ToPortId { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:28
Destination input-port identity.
ConnectionVerdict
Section titled “ConnectionVerdict”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.ConnectionVerdictSource declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:59-89
The host’s answer for oneConnectionCandidate. The library treatsReasonas opaque display text: it gates the drop onIsCompatibleand reports rejections through OnConnectionRejectedwithout interpreting the text.
Members
Section titled “Members”IsCompatible
Section titled “IsCompatible”public bool IsCompatible { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:62
True when the connection may be made.
Reason
Section titled “Reason”public string Reason { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:65
The host’s rejection reason; empty for compatible verdicts.
Compatible()
Section titled “Compatible()”public static BitQuirky.Graph.GraphView.ConnectionVerdict Compatible()Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:74-77
Creates the compatible verdict.
Incompatible(string reason)
Section titled “Incompatible(string reason)”public static BitQuirky.Graph.GraphView.ConnectionVerdict Incompatible(string reason)Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:80-88
Creates an incompatible verdict carrying the host’s reason.
DefaultNodeRenderer
Section titled “DefaultNodeRenderer”Category: Low-level runtime
class BitQuirky.Graph.GraphView.DefaultNodeRendererSource declaration: ../bitquirky-graph/Editor/GraphView/INodeRenderer.cs:34-41
Implements: INodeRenderer
Default no-decoration renderer used byGraphViewOptions when an embedder does not supply its ownINodeRenderer. Clears any previous content; the host may then add custom visuals.
Members
Section titled “Members”Render(NodeDefinition node, NodeView nodeView)
Section titled “Render(NodeDefinition node, NodeView nodeView)”public void Render(BitQuirky.Graph.NodeDefinition node, BitQuirky.Graph.GraphView.Views.NodeView nodeView)Source declaration: ../bitquirky-graph/Editor/GraphView/INodeRenderer.cs:37-40
Fills the node’s content area for the given definition. Called once per node when the card is built and again when the host asks for that node to refresh.
EdgeEndpointDetached
Section titled “EdgeEndpointDetached”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.EdgeEndpointDetachedSource declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:16-53
A renderer-agnostic observation that an existing data-edge endpoint was pulled clear
of its source and released. Carries only the lib’s own ids and a graph-space release
position - no host (Round Trip / Engine) types leak into the lib.DroppedOnNodeId
isnullwhen the endpoint was released over empty canvas (the split case): the
host turns that into a new read placed atReleasePosition. The lib never
creates or destroys reads - it only reports the gesture; the host decides what it means.
Members
Section titled “Members”DroppedOnNodeId
Section titled “DroppedOnNodeId”public System.Guid? DroppedOnNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:52
The node the endpoint was released over, or null over empty canvas (split).
EdgeId
Section titled “EdgeId”public System.Guid EdgeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:40
The live id of the detached edge (the shared source’s outgoing wire).
ReleasePosition
Section titled “ReleasePosition”public UnityEngine.Vector2 ReleasePosition { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:49
The release point in graph space - where a new pill is placed for a split.
SourceNodeId
Section titled “SourceNodeId”public System.Guid SourceNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:43
The node the wire came from (the shared GET pill, in the host’s terms).
SourcePortId
Section titled “SourcePortId”public string SourcePortId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:46
The source output port the wire came from. Lib port ids are strings.
EdgeEndpointDetached(Guid edgeId, Guid sourceNodeId, string sourcePortId, Vector2 releasePosition, Guid? droppedOnNodeId)
Section titled “EdgeEndpointDetached(Guid edgeId, Guid sourceNodeId, string sourcePortId, Vector2 releasePosition, Guid? droppedOnNodeId)”public EdgeEndpointDetached(System.Guid edgeId, System.Guid sourceNodeId, string sourcePortId, UnityEngine.Vector2 releasePosition, System.Guid? droppedOnNodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:25-37
Records one endpoint pulled clear and released.edgeIdis the wire
that was grabbed,sourceNodeId and sourcePortId
the end it stayed attached to,releasePositionthe release point in
graph space, anddroppedOnNodeIdthe node it landed on or null for
empty canvas - which is the distinction the host reads to tell a re-target from a split.
EdgeEndpointDragHover
Section titled “EdgeEndpointDragHover”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.EdgeEndpointDragHoverSource declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:62-85
A host-facing observation raised continuously while an edge endpoint is being dragged,
so a host can drive a release-point affordance (e.g. a split preview) without
re-implementing the lib’s hit-testing. Carries the dragged edge id, the current
graph-space drag position, and the node currently under the drag (ornullover
empty canvas - the splittable target state).
Members
Section titled “Members”EdgeId
Section titled “EdgeId”public System.Guid EdgeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:78
The edge whose endpoint is being dragged.
HoveredNodeId
Section titled “HoveredNodeId”public System.Guid? HoveredNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:84
The node currently under the drag, or null over empty canvas.
Position
Section titled “Position”public UnityEngine.Vector2 Position { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:81
The current drag point in graph space.
EdgeEndpointDragHover(Guid edgeId, Vector2 position, Guid? hoveredNodeId)
Section titled “EdgeEndpointDragHover(Guid edgeId, Vector2 position, Guid? hoveredNodeId)”public EdgeEndpointDragHover(System.Guid edgeId, UnityEngine.Vector2 position, System.Guid? hoveredNodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:70-75
Records one frame of an endpoint drag in progress.edgeIdis the wire
being dragged,positionthe current point in graph space, and
hoveredNodeIdthe node under the pointer or null over empty canvas,
so the host can show the affordance for whichever release the reader would get.
EdgeRewired
Section titled “EdgeRewired”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.EdgeRewiredSource declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:16-67
Feature round-trip 067 (US3): a renderer-agnostic observation that one endpoint of an existing wire was moved to a new port and released over a compatible pin (a quick-rewire or an endpoint detach re-linked onto a port). Carries only the lib’s own ids, no host (Round Trip / Engine) types leak in. The lib never mutates edges on rewire; it raises this intent and the host applies the edit and re-renders (same contract as OnEdgeCreated). An invalid or empty-canvas drop restores the original wire and never raises this.
Members
Section titled “Members”EdgeId
Section titled “EdgeId”public System.Guid EdgeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:45
The live id of the rewired edge (the synthetic data-edge id for data wires).
IsExecutionEdge
Section titled “IsExecutionEdge”public bool IsExecutionEdge { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:66
True for an execution wire, false for a data wire.
MovedSourceEnd
Section titled “MovedSourceEnd”public bool MovedSourceEnd { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:51
True when the producing (output/source) end moved and the consuming end stayed fixed; false when the consuming (input/target) end moved and the producing end stayed fixed.
NewNodeId
Section titled “NewNodeId”public System.Guid NewNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:60
The node the moved endpoint was dropped on.
NewPortId
Section titled “NewPortId”public string NewPortId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:63
The port the moved endpoint was dropped on.
OldNodeId
Section titled “OldNodeId”public System.Guid OldNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:54
The node the moved endpoint came from (its position before the drag).
OldPortId
Section titled “OldPortId”public string OldPortId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:57
The port the moved endpoint came from. Lib port ids are strings.
EdgeRewired(Guid edgeId, bool movedSourceEnd, Guid oldNodeId, string oldPortId, Guid newNodeId, string newPortId, bool isExecutionEdge)
Section titled “EdgeRewired(Guid edgeId, bool movedSourceEnd, Guid oldNodeId, string oldPortId, Guid newNodeId, string newPortId, bool isExecutionEdge)”public EdgeRewired(System.Guid edgeId, bool movedSourceEnd, System.Guid oldNodeId, string oldPortId, System.Guid newNodeId, string newPortId, bool isExecutionEdge)Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:26-42
Records one endpoint successfully moved to a new port.
movedSourceEndasserts which end moved, which tells the host whether
oldNodeId/oldPortIdand
newNodeId/newPortIddescribe the producing or the
consuming side; the other end is unchanged and is not carried.
isExecutionEdgedistinguishes a flow wire from a data wire.
GraphConnectionGhostStyle
Section titled “GraphConnectionGhostStyle”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphConnectionGhostStyleSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:28-35
Underlying type: int
Stroke pattern for the temporary wire shown during a connection drag.
Members
Section titled “Members”Dashed
Section titled “Dashed”Dashed = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:34
Draw the temporary connection as alternating visible dashes and gaps.
Solid = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:31
Draw the temporary connection using the established continuous stroke.
GraphEdgeInteractionState
Section titled “GraphEdgeInteractionState”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphEdgeInteractionStateSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:117-126
Underlying type: int
Domain-neutral interaction state supplied by an embedding graph product for a rendered execution edge. Values may be combined; selected treatment takes visual precedence over hovered treatment when both flags are present.
Members
Section titled “Members”Hovered
Section titled “Hovered”Hovered = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:123
The pointer is over the edge.
None = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:121
No interaction state: the edge draws at rest.
Selected
Section titled “Selected”Selected = 2Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:125
The edge is part of the current selection, which outranks hover.
GraphEdgeRouting
Section titled “GraphEdgeRouting”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphEdgeRoutingSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:15-23
Underlying type: int
The shape wires take between two ports.
Members
Section titled “Members”Bezier
Section titled “Bezier”Bezier = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:18
Curved wires that leave each port along its facing direction.
Orthogonal
Section titled “Orthogonal”Orthogonal = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:20
Axis-aligned wires with right-angle corners.
Straight
Section titled “Straight”Straight = 2Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:22
A direct line from port to port.
GraphFontPair
Section titled “GraphFontPair”Category: Low-level runtime
class BitQuirky.Graph.GraphView.GraphFontPairSource declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:34-110
Pair of FontDefinitions referenced by the design-system typography classes. The UI font is used for all chrome text; the mono font is reserved for identifiers, numeric values, and tabular alignment.
Responsibilities:
- Hold the editor-bundled Inter + JetBrains Mono font assets so an editor window can apply them to its visual tree at setup time.
- Stay a plain data carrier; no font loading or caching logic.
Does NOT:
- Resolve the underlying TTF files itself. The behavior package or
any other consumer constructs aGraphFontPairby
passing in already-loaded
FontDefinitionvalues (or viaFromFonts for legacyFont).
Remarks
Round Trip: ship a per-projectGraphFontPairif a different family is preferred; otherwise reuse the graph-library defaults loaded from Runtime/Fonts/.
Members
Section titled “Members”public UnityEngine.UIElements.FontDefinition Mono { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:42
Monospace font used for identifiers and values.
public UnityEngine.UIElements.FontDefinition Ui { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:39
UI font used by every chrome / label element.
GraphFontPair(FontDefinition ui, FontDefinition mono)
Section titled “GraphFontPair(FontDefinition ui, FontDefinition mono)”public GraphFontPair(UnityEngine.UIElements.FontDefinition ui, UnityEngine.UIElements.FontDefinition mono)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:54-58
Holds the two already-loaded fonts a canvas applies to its tree:
ui for chrome and labels, monofor identifiers and
values, where column alignment matters. Either may be the default
FontDefinition, which leaves that role on the editor’s own font.
FromFonts(Font ui, Font mono)
Section titled “FromFonts(Font ui, Font mono)”public static BitQuirky.Graph.GraphView.GraphFontPair FromFonts(UnityEngine.Font ui, UnityEngine.Font mono)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:64-69
Build aGraphFontPairfrom legacy
Font assets via FromFont.
LoadDefaultsFromPackage()
Section titled “LoadDefaultsFromPackage()”public static BitQuirky.Graph.GraphView.GraphFontPair LoadDefaultsFromPackage()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:90-106
Editor-side helper that loads the graph-library’s bundled
Inter (UI) and JetBrains Mono (identifier / value) TTF assets
fromPackages/io.bitquirky.graph/Runtime/Fonts/via
AssetDatabaseand wraps them in a
GraphFontPair.
Remarks
Round Trip and any other consumer should call this from their
editor window setup so both projects resolve the exact same
font assets through one upstream API. If either font is
missing from the package, the corresponding
FontDefinition stays defaultand the
element falls back to Unity’s editor default font.
Bundled font licenses live alongside the TTFs in
Runtime/Fonts/Inter/OFL.txtand
Runtime/Fonts/JetBrainsMono/OFL.txtper SIL OFL 1.1.
GraphNodePresentation
Section titled “GraphNodePresentation”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphNodePresentationSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:93-99
Underlying type: int
The node chrome the canvas draws, which also decides the default card layout.
Members
Section titled “Members”CodeFlow
Section titled “CodeFlow”CodeFlow = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:96
Cards with a header, body, and labeled pin rows.
Tree = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:98
Compact top-down cards sized for dense hierarchies.
GraphNodeStyle
Section titled “GraphNodeStyle”Category: Low-level runtime
struct BitQuirky.Graph.GraphView.GraphNodeStyleSource declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:228-246
The resolved colors and corner radius for one node card, as worked out by ResolveNode.
Members
Section titled “Members”BaseColor
Section titled “BaseColor”public UnityEngine.Color BaseColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:231
The color the rest of the card is derived from.
BodyColor
Section titled “BodyColor”public UnityEngine.Color BodyColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:235
Fill of the card’s body.
BorderDarkColor
Section titled “BorderDarkColor”public UnityEngine.Color BorderDarkColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:241
Color of the card’s shaded border edge.
BorderLightColor
Section titled “BorderLightColor”public UnityEngine.Color BorderLightColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:239
Color of the card’s lit border edge.
CornerRadius
Section titled “CornerRadius”public float CornerRadius { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:245
Corner radius in pixels for this card.
HeaderColor
Section titled “HeaderColor”public UnityEngine.Color HeaderColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:233
Fill of the card’s header band.
IconBackgroundColor
Section titled “IconBackgroundColor”public UnityEngine.Color IconBackgroundColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:243
Fill of the plate behind a card icon.
LabelColor
Section titled “LabelColor”public UnityEngine.Color LabelColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:237
Text color chosen to read against the base color.
GraphPortGlyphStyle
Section titled “GraphPortGlyphStyle”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphPortGlyphStyleSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:40-47
Underlying type: int
Fill treatment for an individual port glyph.
Members
Section titled “Members”Filled
Section titled “Filled”Filled = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:43
Fill the port glyph with its resolved port color.
Hollow
Section titled “Hollow”Hollow = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:46
Outline the port glyph with its resolved port color and leave its center clear.
GraphPortPlacement
Section titled “GraphPortPlacement”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphPortPlacementSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:52-58
Underlying type: int
Which sides of a node its input and output ports sit on.
Members
Section titled “Members”LeftRight
Section titled “LeftRight”LeftRight = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:55
Inputs on the left edge, outputs on the right, for left-to-right reading.
TopBottom
Section titled “TopBottom”TopBottom = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:57
Inputs on the top edge, outputs on the bottom, for top-down reading.
GraphScrollWheelBehavior
Section titled “GraphScrollWheelBehavior”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphScrollWheelBehaviorSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:104-110
Underlying type: int
What an unmodified wheel or trackpad scroll does on the canvas.
Members
Section titled “Members”PanWithControlZoom
Section titled “PanWithControlZoom”PanWithControlZoom = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:109
Scrolling pans the canvas; holding Control zooms instead.
Zoom = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:107
Scrolling changes zoom around the pointer.
GraphTheme
Section titled “GraphTheme”Category: Low-level runtime
class BitQuirky.Graph.GraphView.GraphThemeSource declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:42-222
Visual theme for graph editors.
Responsibilities:
- Map semantic node data to shared colors, contrast, chrome, and compact icon treatment.
- Keep CodeFlow and Tree presentations in the same product visual language while letting each presentation choose its layout.
- Carry references to the optional design-system stylesheets (Tokens.uss / Typography.uss / Effects.uss), the editor font pair, and an optional layout decorator strategy so consumers that opt into the new design language can pick everything up from one options object (-).
Does NOT:
- Decide graph layout, port placement, edge routing, or interaction behavior. Those stay inGraphViewOptions.
- Encode domain behavior. Node semantics arrive through NodeDefinitionmetadata.
- Replace the existing color/darken parameters used by
ResolveNode; the design-system additions are
purely additive so legacy callers of
BitQuirkyDarkcontinue to work unchanged.
Remarks
Round Trip: when Round Trip adopts the external graph library, build a configuredGraphThemewith the design-system stylesheets and font pair attached, plus a project-specific IGraphLayoutDecorator(or null). The existing per-node darken parameters can stay at their defaults; they only affect the legacy gradient/tree treatments.
Members
Section titled “Members”BodyDarken
Section titled “BodyDarken”public float BodyDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:70
How far a node’s body is darkened from its base color, from 0 to 1.
BorderDarkDarken
Section titled “BorderDarkDarken”public float BorderDarkDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:78
How far the shaded border edge is darkened from the base color, from 0 to 1.
BorderLightDarken
Section titled “BorderLightDarken”public float BorderLightDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:76
How far the lit border edge is darkened from the base color, from 0 to 1.
CanvasBackground
Section titled “CanvasBackground”public UnityEngine.Color CanvasBackground { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:53
The canvas fill behind the grid.
DataEdge
Section titled “DataEdge”public UnityEngine.Color DataEdge { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:61
The color of data wires.
EffectsStyleSheet
Section titled “EffectsStyleSheet”public UnityEngine.UIElements.StyleSheet EffectsStyleSheet { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:103
SeeTokensStyleSheet.
ExecutionEdge
Section titled “ExecutionEdge”public UnityEngine.Color ExecutionEdge { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:59
The color of flow wires.
FontPair
Section titled “FontPair”public BitQuirky.Graph.GraphView.GraphFontPair FontPair { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:115
Optional bundled font pair (Inter UI + JetBrains Mono). When
non-null the editor window applies these via
style.unityFontDefinitionon the elements that consume
the design-system typography classes.
Remarks
Round Trip: ship a per-project font pair if a different family is preferred; otherwise reuse the graph-library defaults.
public BitQuirky.Graph.GraphView.GraphFontPair Fonts { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:125-129
Compatibility alias for callers that adopted the first Feature 014 implementation before the contract name settled onFontPair.
Remarks
Round Trip: preferFontPairin new code.
GridLine
Section titled “GridLine”public UnityEngine.Color GridLine { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:55
The grid line color.
HeaderDarken
Section titled “HeaderDarken”public float HeaderDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:68
How far a node’s header is darkened from its base color, from 0 (unchanged) to 1 (black).
IconBackgroundDarken
Section titled “IconBackgroundDarken”public float IconBackgroundDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:80
How far an icon’s backing plate is darkened from the base color, from 0 to 1.
LayoutDecoratorStrategy
Section titled “LayoutDecoratorStrategy”public BitQuirky.Graph.GraphView.Layout.IGraphLayoutDecorator LayoutDecoratorStrategy { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:140
Optional post-layout pass invoked after the main tidy-tree strategy. Null means “no decorator” - the layout-state passes straight through to rendering.
Remarks
Round Trip: leave null unless Round Trip introduces annotation nodes that should not occupy their own layout row.
NodeCornerRadius
Section titled “NodeCornerRadius”public float NodeCornerRadius { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:64
Corner radius in pixels of a node card.
Selection
Section titled “Selection”public UnityEngine.Color Selection { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:57
The color marking selected chrome.
TokensStyleSheet
Section titled “TokensStyleSheet”public UnityEngine.UIElements.StyleSheet TokensStyleSheet { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:93
Optional shared design-system stylesheets. When all three are
non-null an editor window can install them in
rootVisualElement.styleSheetsand pick up the
--bq-*tokens. Callers that do not opt in leave these
null and the legacyGraphViewStyles.usspath applies.
Remarks
Round Trip: set all three together when adopting the design system; partial adoption produces missing tokens at runtime.
TreeBodyDarken
Section titled “TreeBodyDarken”public float TreeBodyDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:74
How far a body is darkened in the compact top-down presentation, from 0 to 1.
TreeCornerRadius
Section titled “TreeCornerRadius”public float TreeCornerRadius { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:66
Corner radius in pixels of a node card in the compact top-down presentation.
TreeHeaderDarken
Section titled “TreeHeaderDarken”public float TreeHeaderDarken { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:72
How far a header is darkened in the compact top-down presentation, from 0 to 1.
TypographyStyleSheet
Section titled “TypographyStyleSheet”public UnityEngine.UIElements.StyleSheet TypographyStyleSheet { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:98
SeeTokensStyleSheet.
BitQuirkyDark()
Section titled “BitQuirkyDark()”public static BitQuirky.Graph.GraphView.GraphTheme BitQuirkyDark()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:146-149
Creates the default dark theme: the established canvas colors and darkening amounts, with no design-system style sheets, font pair, or layout decorator attached.
BitQuirkyDesignSystemDark()
Section titled “BitQuirkyDesignSystemDark()”public static BitQuirky.Graph.GraphView.GraphTheme BitQuirkyDesignSystemDark()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:156-171
Creates a graph theme whose canvas colors match the shared
design-system tokens--bq-bg and --bq-grid.
Embedders can still override individual values after creation.
ResolveBaseColor(NodeDefinition node)
Section titled “ResolveBaseColor(NodeDefinition node)”public UnityEngine.Color ResolveBaseColor(BitQuirky.Graph.NodeDefinition node)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:208-221
Returns the color a node is built from: its output data type’s color when the node is colored by data type (a neutral olive when that type is unknown), otherwise its category color.
ResolveNode(NodeDefinition node, GraphNodePresentation presentation)
Section titled “ResolveNode(NodeDefinition node, GraphNodePresentation presentation)”public BitQuirky.Graph.GraphView.GraphNodeStyle ResolveNode(BitQuirky.Graph.NodeDefinition node, BitQuirky.Graph.GraphView.GraphNodePresentation presentation)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:178-201
Works out the full set of colors and the corner radius for one node card, starting from the node’s base color and applying the darkening amounts for the presentation in use.
GraphViewHost
Section titled “GraphViewHost”Category: Low-level runtime
class BitQuirky.Graph.GraphView.GraphViewHostSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:47-4503
Inherits: VisualElement
UI Toolkit canvas that renders aGraphDefinition: nodes, ports, edges, grid, and the user manipulators that drive pan, zoom, marquee selection, node drag, and edge connection.
Responsibilities:
- Build node/port/edge views from the model, retain them across scoped UpdateModel calls, and destructively rebuild on SetModel.
- Own the manipulator chain and surface user intent (selection change, edge created, double-click navigation) as public events so an embedding tool can react.
- Persist viewport pan/zoom into the suppliedGraphViewModel’s LayoutState.
Does NOT:
- Mutate the underlyingGraphDefinition. Edits are surfaced as events; the embedder applies them and re-sets the model.
- Persist anything to disk. Layout state is in-memory only.
Members
Section titled “Members”CanNodeGoToSource
Section titled “CanNodeGoToSource”public System.Func<System.Guid, bool> CanNodeGoToSource { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:143
Callback to determine whether a node has valid source data for the “Go to Source” context menu. Set by the owning window (e.g., GraphControlWindow). Returns true when the node can navigate to source.
EdgeLayer
Section titled “EdgeLayer”public BitQuirky.Graph.GraphView.Views.EdgeLayer EdgeLayer { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2452
The edge-render layer. Exposed so embedders can attach hit-test based manipulators (e.g. an “insert reroute knot on double-click” manipulator) that need to enumerate the current edge polylines.
GrabbedEndpointIsSourceEnd
Section titled “GrabbedEndpointIsSourceEnd”public bool GrabbedEndpointIsSourceEnd { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4076
Feature round-trip 067 (US3): which end of the grabbed edge is moving: true for the producing (output/source) end, false for the consuming (input/target) end. Meaningful only whileHasGrabbedEdgeEndpointis true.
HasActiveConnection
Section titled “HasActiveConnection”public bool HasActiveConnection { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3308
Feature round-trip 067: true while a connection drag is in flight (fromStartConnection / StartConnectionFromDataEdge untilEndConnection or CancelConnection). Lets a host manipulator (e.g. the reroute knot connector halo) tell whether its start attempt actually began a drag, so it can steal the gesture only then.
HasGrabbedEdgeEndpoint
Section titled “HasGrabbedEdgeEndpoint”public bool HasGrabbedEdgeEndpoint { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4069
Feature 062 (E2) - whether an edge-endpoint drag is currently in progress.
IsNodeDragInProgress
Section titled “IsNodeDragInProgress”public bool IsNodeDragInProgress { get; private set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3928
True while a pointer drag is actively moving nodes. Hosts that rebuild their model from background events (autosave completion, artifact reloads, polled refresh) must not do so mid-drag: a rebuild replaces the very views the pointer is moving, snapping the dragged card back to its model position and silently eating the remainder of the gesture.
IsPanZoomLocked
Section titled “IsPanZoomLocked”public bool IsPanZoomLocked { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2369
Current lock state forSetPanZoomLocked.
MaxZoom
Section titled “MaxZoom”public float MaxZoom { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:488
The closest the reader may zoom in, taken from the options.
MinZoom
Section titled “MinZoom”public float MinZoom { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:486
The furthest the reader may zoom out, taken from the options.
public BitQuirky.Graph.GraphView.ViewModels.GraphViewModel Model { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:492
The mounted document, or null before a model is set.
OverlayContainer
Section titled “OverlayContainer”public UnityEngine.UIElements.VisualElement OverlayContainer { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2491
Pan/zoomed overlay container inside the graph content space. Embedders can parent visuals here so they follow the camera (the host clears this on everySetModelrebuild).
SelectedEdgeLayer
Section titled “SelectedEdgeLayer”public BitQuirky.Graph.GraphView.Views.EdgeLayer SelectedEdgeLayer { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2459
Foreground edge layer that redraws edges incident to the current node selection above selected cards while keeping unrelated wires in the normal edge layer.
public float Zoom { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:484
The current zoom factor, or 1 when no model is mounted.
OnCanvasContextMenuRequested
Section titled “OnCanvasContextMenuRequested”public event System.Action<UnityEngine.UIElements.ContextualMenuPopulateEvent> OnCanvasContextMenuRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:168
Raised while the empty-canvas right-click context menu is being populated, so the owning window can append its canvas-scoped actions (paste, and the selection-scoped cut / copy / delete in their disabled state) onto the same menu. Only fires for right-clicks that did not land on a node - a node click is handled byOnNodeContextMenuRequested, so the bubbling populate event never appends the entries twice.
OnCommentGlyphActivated
Section titled “OnCommentGlyphActivated”public event System.Action<System.Guid> OnCommentGlyphActivatedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:137
Raised when the user clicks a node’s comment glyph (feature 064 / ). Carries the node id; the owning window resolves the activation route (select member + focus rail slot, or select node + show post-it with no rail focus).
OnCommentPopupResized
Section titled “OnCommentPopupResized”public event System.Action<System.Guid, UnityEngine.Vector2> OnCommentPopupResizedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:129
Raised when the user finishes dragging a node’s comment-popup
resize grip. Carries the node id and the new
(width, height)in canvas-space pixels. The owning
window subscribes and persists the size into the layout file
alongside node positions and edge reroutes.
OnCompositeLiteralCommitted
Section titled “OnCompositeLiteralCommitted”public event System.Action<System.Guid, string, System.Collections.Generic.IReadOnlyList<string>> OnCompositeLiteralCommittedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:233
Raised once when a pin’s COMPOSITE literal row is committed, carrying the owning node id, the pin id, and every component’s text in render order (feature round-trip 071). One event for the whole row, never one per component: the host composes the components into a single literal, stages one pending edit, and records one undo entry.
OnConnectionDragEnded
Section titled “OnConnectionDragEnded”public event System.Action<BitQuirky.Graph.GraphView.ConnectionDragSource> OnConnectionDragEndedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:114
Raised exactly once when an initialized connection drag ends through commit, rejection, empty-canvas release, or cancellation. Carries the same source identity reported byOnConnectionDragStarted.
OnConnectionDragHover
Section titled “OnConnectionDragHover”public event System.Action<bool, BitQuirky.Graph.GraphView.ConnectionCandidate> OnConnectionDragHoverSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:100
Raised on every mouse move DURING a connection drag (feature round-trip 067), reporting the structurally-legal pin currently under the cursor so the host can show live compatibility feedback (the mismatch tooltip / a “will convert” hint) before release, not only on drop. The bool is true when a legal candidate pin is hovered (the candidate is then meaningful); false clears the feedback (no pin, an illegal pair, or the drag ended). The host applies its own validator to decide the feedback; the lib only reports the pin.
OnConnectionDragStarted
Section titled “OnConnectionDragStarted”public event System.Action<BitQuirky.Graph.GraphView.ConnectionDragSource> OnConnectionDragStartedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:107
Raised exactly once after a connection drag has initialized. Carries the stable node and port identity where the drag began so an embedder can project transient presentation without retaining aPortView.
OnConnectionDroppedOnCanvas
Section titled “OnConnectionDroppedOnCanvas”public event System.Action<BitQuirky.Graph.GraphView.ConnectionDropRequest> OnConnectionDroppedOnCanvasSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:329
Round Trip feature 068: raised when a pin drag is released over empty canvas (no target port) instead of silently cancelling, so a host can open a context menu at the drop point. Carries the source pin identity and the graph-space release point (ConnectionDropRequest). NOT raised when the drag ends over a real port (that isOnEdgeCreated/ OnConnectionRejected), on Escape (CancelConnection), or when there is no active connection. Additive: existing connection events are unchanged.
OnConnectionRejected
Section titled “OnConnectionRejected”public event System.Action<BitQuirky.Graph.GraphView.ConnectionCandidate, BitQuirky.Graph.GraphView.ConnectionVerdict> OnConnectionRejectedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:90
Raised when a structurally legal drop was rejected by the host-suppliedConnectionValidator (feature round-trip 067). Carries the normalized candidate and the host’s verdict so the owning window can surface the reason (e.g. a type-mismatch toast). Never raised for structurally illegal drops, which stay silent as before, and never raised when no validator is configured.
OnEdgeCreated
Section titled “OnEdgeCreated”public event System.Action<BitQuirky.Graph.GraphView.ConnectionRequest> OnEdgeCreatedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:73
Raised when the reader completes a legal connection drag. The canvas does not add the edge: the embedder applies the request to its own model and updates the canvas.
OnEdgeEndpointDetached
Section titled “OnEdgeEndpointDetached”public event System.Action<BitQuirky.Graph.GraphView.EdgeEndpointDetached> OnEdgeEndpointDetachedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:300
Feature 062 (E2) - raised when an existing data-edge endpoint is pulled clear of its
source and released.DroppedOnNodeId is null
over empty canvas (the split case). Renderer-agnostic: it reports only the lib’s own
ids and a graph-space position. The lib never creates/destroys reads - the host decides
what the gesture means (e.g. a GET-pill split) and performs any command itself.
OnEdgeEndpointDragHover
Section titled “OnEdgeEndpointDragHover”public event System.Action<BitQuirky.Graph.GraphView.EdgeEndpointDragHover> OnEdgeEndpointDragHoverSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:309
Feature 062 (E2) - raised continuously while a data-edge endpoint drag is in progress,
carrying the dragged edge id, the current graph-space drag point, and the node under the
drag (ornullover empty canvas). Host-facing only: lets the host drive a
split-preview affordance at the prospective release point without re-implementing the
lib’s geometry.
OnEdgeRewired
Section titled “OnEdgeRewired”public event System.Action<BitQuirky.Graph.GraphView.EdgeRewired> OnEdgeRewiredSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:319
Feature round-trip 067 (US3): raised when one endpoint of an existing wire is moved to a new port and released over a compatible pin (a quick-rewire drag or an endpoint detach re-linked onto a port). Carries the edge, which end moved, and the old/new endpoints. The lib never mutates edges on rewire; the host applies the edit and re-renders (same contract asOnEdgeCreated). An invalid or empty-canvas drop restores the wire and raisesOnConnectionRejectedonly for an incompatible port.
OnEdgesRendered
Section titled “OnEdgesRendered”public event System.Action OnEdgesRenderedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:79
Raised after a route batch has been rebuilt from current node geometry, so edge-attached overlays can query the rendered paths without a layout-frame race.
OnGuardShieldClicked
Section titled “OnGuardShieldClicked”public event System.Action<System.Guid> OnGuardShieldClickedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:273
Raised when a pin’s guard shield (“click to edit”) is clicked. Carries the owning node id so the host can select that node and surface its guard editor (e.g. the right-rail GUARDS card).
OnInlineLiteralCommitted
Section titled “OnInlineLiteralCommitted”public event System.Action<System.Guid, string, string> OnInlineLiteralCommittedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:225
Raised when a pin’s inline literal value is edited and committed with a new, valid value. Carries the owning node id, the pin id, and the new C# literal text. Hosts write the value back into the model (and onward to source).
OnInlineReferenceCommitted
Section titled “OnInlineReferenceCommitted”public event System.Action<System.Guid, string, string> OnInlineReferenceCommittedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:239
Raised when a pin’s inline reference is edited and committed with a new identifier. Carries the owning node id, the pin id, and the new variable name. Hosts write it back to the model/source.
OnNodeContextMenuGoToSource
Section titled “OnNodeContextMenuGoToSource”public event System.Action<System.Guid> OnNodeContextMenuGoToSourceSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:148
Raised when the user selects “Go to Source” from the node context menu.
OnNodeContextMenuRequested
Section titled “OnNodeContextMenuRequested”public event System.Action<System.Guid, UnityEngine.UIElements.ContextualMenuPopulateEvent> OnNodeContextMenuRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:158
Raised while the node right-click context menu is being populated, after the
shared “Go to Source” entry, so the owning window can append its own
node-scoped actions (cut / copy / paste / delete) onto the same menu and route
them to its handlers - consistent withOnNodeContextMenuGoToSource,
and without the shared library mutating the consumer’s model. Carries the
right-clicked node id and the liveContextualMenuPopulateEvent.
OnNodeDoubleClicked
Section titled “OnNodeDoubleClicked”public event System.Action<System.Guid> OnNodeDoubleClickedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:120
Raised when the reader double-clicks a node, carrying its id, so the embedder can open whatever the node stands for.
OnNodeDragHover
Section titled “OnNodeDragHover”public event System.Action<System.Guid, System.Guid?> OnNodeDragHoverSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:291
Feature 062 (E1) - raised continuously while a node drag hovers, carrying the dragged
node id and the id of the node currently under the drag (ornullwhen the drag is
over empty canvas). Host-facing only: the lib owns the hit-testing so the host can drive
a drop-zone affordance without re-implementing geometry.
OnNodeDroppedOnNode
Section titled “OnNodeDroppedOnNode”public event System.Action<BitQuirky.Graph.GraphView.NodeDropOnNode> OnNodeDroppedOnNodeSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:283
Feature 062 (E1) - raised once, at drag release, when a dragged node is released directly over another node. Emittedin addition tothe normal OnNodeMovednotification (which still fires with final positions for every drag), so a host that rejects the drop as ineligible keeps ordinary canvas-drag behavior. The lib makes no eligibility decision - the host decides what the drop means (e.g. a GET-pill consolidate) via its own identity rules.
OnNodeMoved
Section titled “OnNodeMoved”public event System.Action<System.Collections.Generic.IReadOnlyList<(System.Guid Id, UnityEngine.Vector2 Position)>> OnNodeMovedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:63
Raised when a node drag ends, carrying the id and final graph-space position of every node the drag actually displaced. Not raised when nothing moved.
OnObjectReferenceClearRequested
Section titled “OnObjectReferenceClearRequested”public event System.Action<System.Guid, string> OnObjectReferenceClearRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:260
Feature 072 : raised by the combo’s trailing clear action. The host empties the reference as one undoable edit.
OnObjectReferenceComboClicked
Section titled “OnObjectReferenceComboClicked”public event System.Action<System.Guid, string> OnObjectReferenceComboClickedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:247
Round Trip feature 072 : raised when a pin’s object-reference combo is clicked and the click means something. Carries the owning node id and the pin id so the host can open its picker anchored to that pin. A wired (suppressed) combo never raises this: the element itself enforces the no-op, so no consumer has to.
OnObjectReferenceDropped
Section titled “OnObjectReferenceDropped”public event System.Action<System.Guid, string, System.Collections.Generic.IReadOnlyList<UnityEngine.Object>> OnObjectReferenceDroppedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:267
Feature 072 : raised when assets dropped on a pin’s combo passed the host’s own accept filter. Carries the owning node id, the pin id, and the dropped objects. A refused drop raises nothing at all.
OnObjectReferenceLocateRequested
Section titled “OnObjectReferenceLocateRequested”public event System.Action<System.Guid, string> OnObjectReferenceLocateRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:254
Round Trip feature 072 : raised by the combo’s trailing locate action, and by a modifier-click on the pin label. Carries the owning node id and the pin id so the host can reveal that pin’s asset in its project browser.
OnPortBreakAllLinks
Section titled “OnPortBreakAllLinks”public event System.Action<System.Guid, string> OnPortBreakAllLinksSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:210
Feature round-trip 067 (US2): raised when the user invokes “Break Node Link(s)” on a pin, asking the host to remove every wire at that pin under one undo step. Carries the owning node id and the pin id (matches FromPortId / ToPortId).
OnPortBreakLinkTo
Section titled “OnPortBreakLinkTo”public event System.Action<System.Guid, string, System.Guid, string> OnPortBreakLinkToSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:218
Feature round-trip 067 (US2): raised when the user invokes “Break link
to
OnPortClicked
Section titled “OnPortClicked”public event System.Action<BitQuirky.Graph.NodeDefinition, BitQuirky.Graph.PortDefinition> OnPortClickedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:453
Raised when a click-eligible port was pressed and released without the pointer travelling far enough to become a connection drag. Carries the owning node and the clicked port. No connection and no drop-on-canvas event are produced for such a press.
OnRecombineRequested
Section titled “OnRecombineRequested”public event System.Action<string, string> OnRecombineRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:185
Feature 038 - raised when the user invokes “Recombine Struct Pin” via
right-click on a peer port.rootPortIdidentifies
the original (root) struct pin,memberPathis the
dot-prefixed member path of the peer (e.g.".x" or ".center.x").
OnSelectionChanged
Section titled “OnSelectionChanged”public event System.Action<System.Collections.Generic.IReadOnlyCollection<System.Guid>> OnSelectionChangedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:58
Raised after the selected node set changes, carrying the new selection. Raised once per change, including when the selection becomes empty.
OnShowInstanceAsPill
Section titled “OnShowInstanceAsPill”public event System.Action<string, string> OnShowInstanceAsPillSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:202
Feature 060: raised when the user invokes “Show as Pill” on an eligible instance-consumer wire. Carries the owning node id and the consumer pin’s stable id. The window collapses this one connection back to an inline pill and re-renders. MirrorsOnShowInstanceAsWire.
OnShowInstanceAsWire
Section titled “OnShowInstanceAsWire”public event System.Action<string, string> OnShowInstanceAsWireSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:194
Feature 060: raised when the user invokes “Show as Wire” on an eligible instance-consumer pill. Carries the owning node id and the consumer pin’s stable id (InstanceConsumerId), the persistence identity the host toggles. The window reveals the shared instance source as a wire for this one connection and re-renders.
OnSplitRequested
Section titled “OnSplitRequested”public event System.Action<string> OnSplitRequestedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:177
Raised when the user invokes “Split Struct Pin” via right-click on a port. The argument is the port id (matches FromPortId / ToPortId). The owning window flips the matchingIsExpanded state and re-renders.
OnViewportChanged
Section titled “OnViewportChanged”public event System.Action<UnityEngine.Vector2, float> OnViewportChangedSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:68
Raised whenever the viewport changes, carrying the new pan offset and zoom factor. Fires for programmatic changes as well as user pan and zoom.
AddRerouteKnotOverlay(VisualElement element)
Section titled “AddRerouteKnotOverlay(VisualElement element)”public void AddRerouteKnotOverlay(UnityEngine.UIElements.VisualElement element)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2416-2421
Adds an embedder-supplied visual to the generic overlay layer that sits inside the pan/zoomed content space. Use this for elements such as reroute knots, debug gizmos, or per-edge controls that must follow the graph transform without being part of the core node/edge rendering. The overlay is cleared on everySetModel rebuild - the embedder is expected to repopulate after each rebuild.
AddToSelection(Guid nodeId)
Section titled “AddToSelection(Guid nodeId)”public void AddToSelection(System.Guid nodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3014-3021
Adds a node to the selection, reporting the change only when the node was not already selected.
ApplyEdgePresentation(GraphEdgeRouting routing, Color idleColor, float idleStrokeWidth, float idleOpacity, Color activeColor, float activeStrokeWidth)
Section titled “ApplyEdgePresentation(GraphEdgeRouting routing, Color idleColor, float idleStrokeWidth, float idleOpacity, Color activeColor, float activeStrokeWidth)”public void ApplyEdgePresentation(BitQuirky.Graph.GraphView.GraphEdgeRouting routing, UnityEngine.Color idleColor, float idleStrokeWidth, float idleOpacity, UnityEngine.Color activeColor, float activeStrokeWidth)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2849-2869
Restyles wire routing and the resting and active treatments in one call, writes the values back into the options, and repaints every edge.
ApplyGridPresentation(Color backgroundColor, Color gridLineColor, Color gridDotColor, float spacing, int dotFrequency, float dotRadius)
Section titled “ApplyGridPresentation(Color backgroundColor, Color gridLineColor, Color gridDotColor, float spacing, int dotFrequency, float dotRadius)”public void ApplyGridPresentation(UnityEngine.Color backgroundColor, UnityEngine.Color gridLineColor, UnityEngine.Color gridDotColor, float spacing, int dotFrequency, float dotRadius)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2800-2828
Restyles the canvas backdrop and grid in one call and repaints it, also writing the values back into the options so a later rebuild keeps them.
Parameters
dotFrequency: Intersections between dots, also used as the major-line rhythm; values below one are raised to one.
AutoLayout()
Section titled “AutoLayout()”public void AutoLayout()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:924-934
Explicitly rebuilds positions with the configured layout strategy. Rendered node sizes are supplied to tree layout and the theme decorator runs once. Viewport state and pinned node positions remain authoritative.
CancelConnection()
Section titled “CancelConnection()”public void CancelConnection()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3501-3504
Cancels an in-flight connection drag (feature round-trip 067;
Escape or a programmatic abort): clears the ghost wire and every
port compatibility state without raising
OnEdgeCreated or OnConnectionRejected.
The connection-drag counterpart ofCancelEdgeEndpointDrag.
CancelEdgeEndpointDrag()
Section titled “CancelEdgeEndpointDrag()”public void CancelEdgeEndpointDrag()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4402-4407
Feature 062 (E2) - abandon an in-progress endpoint drag without raising a detach (e.g. the manipulator was interrupted). Clears the temp wire.
CenterOnNode(Guid nodeId)
Section titled “CenterOnNode(Guid nodeId)”public void CenterOnNode(System.Guid nodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3186-3204
Pan the viewport sonodeIdsits at the
center of the visible area. Does nothing when the node does
not exist in the current model or the viewport size is not yet
resolved.
Remarks
Round Trip: implements “click an inspector row → center on node” for any embedded host.
ClearRerouteKnotOverlay()
Section titled “ClearRerouteKnotOverlay()”public void ClearRerouteKnotOverlay()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2428-2432
Clears every embedder-supplied visual from the overlay layer. Called by the embedder when it needs to rebuild its overlay set without rebuilding the rest of the graph.
ClearSelection()
Section titled “ClearSelection()”public void ClearSelection()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2993-3008
Deselects everything and reports the change. Does nothing when the selection is already empty.
EmitNodeMovedForSelection()
Section titled “EmitNodeMovedForSelection()”public void EmitNodeMovedForSelection()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3872-3900
Reports the end of a node drag, carrying only the selected nodes whose position actually changed during the gesture, and clears the recorded drag start positions. Raises nothing when no node moved.
EndConnection(PortView target)
Section titled “EndConnection(PortView target)”public void EndConnection(BitQuirky.Graph.GraphView.Views.PortView target)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3622-3688
Ends a connection drag on a port. When the pair is structurally legal and the host’s validator accepts it, the created-edge notification is raised with the candidate normalized to output then input; a rejected pair raises the rejection notification instead. A null target ends the drag without connecting anything.
EndEdgeEndpointDrag(PortView target, Vector2 graphSpaceReleasePosition)
Section titled “EndEdgeEndpointDrag(PortView target, Vector2 graphSpaceReleasePosition)”public void EndEdgeEndpointDrag(BitQuirky.Graph.GraphView.Views.PortView target, UnityEngine.Vector2 graphSpaceReleasePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4287-4330
Feature round-trip 067 (US3): finish an endpoint drag overtarget
(the port under the release, ornullover empty canvas / a non-port). With a host
validator present and a compatible port under the release, raises
OnEdgeRewired; an incompatible port raises OnConnectionRejected
and restores; over empty canvas the 062 shared-read detach is preserved for a target-end
grab (OnEdgeEndpointDetached) and any other case restores silently. The lib
never mutates the edge - the host applies the rewire and re-renders.
EnumerateNodeViews()
Section titled “EnumerateNodeViews()”public System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Guid, BitQuirky.Graph.GraphView.Views.NodeView>> EnumerateNodeViews()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3082-3085
Enumerate the live(node id, node view)pairs the host
currently renders. Snapshot copy so the caller can mutate
during iteration without invalidating the host’s dictionary.
Remarks
Round Trip: callers iterating to clear / reapply per-node decorations on every refresh tick should use this snapshot (e.g. the BT editor’s Live-mode active-node highlight).
FitToContents()
Section titled “FitToContents()”public void FitToContents()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2705-2708
Zooms and pans so the whole graph, plus a margin, fits in the viewport, centered. Does nothing when the canvas has no nodes or no usable size yet.
FitToContents(GraphViewportFitAlignment alignment)
Section titled “FitToContents(GraphViewportFitAlignment alignment)”public void FitToContents(BitQuirky.Graph.GraphView.GraphViewportFitAlignment alignment)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2715-2729
Zooms and pans so the whole graph, plus a margin, fits in the viewport at the given alignment. The computed zoom is clamped into range, so a very large graph stops at the minimum zoom rather than shrinking further.
FrameContents(GraphViewportFitAlignment alignment, float zoom)
Section titled “FrameContents(GraphViewportFitAlignment alignment, float zoom)”public void FrameContents(BitQuirky.Graph.GraphView.GraphViewportFitAlignment alignment, float zoom)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2736-2744
Pans so the graph sits at the given alignment while holding the zoom the caller asks for, clamped into range. Use this instead ofFitToContentswhen the zoom level matters more than fitting everything on screen.
GetLayout()
Section titled “GetLayout()”public BitQuirky.Graph.GraphView.ViewModels.LayoutState GetLayout()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3611-3614
Returns the live layout of the mounted model, or null when no model is set. Mutating it takes effect only once it is passed back toSetLayout.
GetNodeAt(Vector2 worldPos)
Section titled “GetNodeAt(Vector2 worldPos)”public System.Guid? GetNodeAt(UnityEngine.Vector2 worldPos)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3907-3910
Feature 062 (E1) - hit-test the node underworldPos(panel-space),
ornullwhen the point is over empty canvas. Renderer-agnostic helper exposed for
hosts that need world-space hit-testing; the internal drag path works in graph space.
GetPortAt(Vector2 worldPos)
Section titled “GetPortAt(Vector2 worldPos)”public BitQuirky.Graph.GraphView.Views.PortView GetPortAt(UnityEngine.Vector2 worldPos)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3757-3780
Returns the port whose glyph containsworldPos(panel space), or
null when the point is not over a port. Ports relocated into custom node content are
found as well as those in the standard input and output rows.
GetSelection()
Section titled “GetSelection()”public System.Collections.Generic.IReadOnlyCollection<System.Guid> GetSelection()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3051-3054
Returns a snapshot of the selected node ids; later selection changes do not affect it.
GraphToViewSpace(Vector2 graphPosition)
Section titled “GraphToViewSpace(Vector2 graphPosition)”public UnityEngine.Vector2 GraphToViewSpace(UnityEngine.Vector2 graphPosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2983-2987
Converts a graph-space point to viewport space, applying the current pan and zoom.
HideMarquee()
Section titled “HideMarquee()”public void HideMarquee()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3253-3257
Hides the selection box. Does nothing when marquee selection is disabled.
Initialize(GraphViewOptions options)
Section titled “Initialize(GraphViewOptions options)”public void Initialize(BitQuirky.Graph.GraphView.GraphViewOptions options)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:576-700
Builds the canvas: applies the style sheet, creates the grid, edge, and overlay layers, and installs the manipulators the options enable. Call once before setting a model; passing null uses default options.
IsSelected(Guid nodeId)
Section titled “IsSelected(Guid nodeId)”public bool IsSelected(System.Guid nodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3207-3210
Whether the node is currently selected.
MoveSelection(Vector2 delta)
Section titled “MoveSelection(Vector2 delta)”public void MoveSelection(UnityEngine.Vector2 delta)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3217-3234
Offsets every selected node bydeltain graph space, updating the
stored layout positions and the wires. Used while a drag is in progress; the move is
reported only when the drag ends.
NotifyEdgeEndpointReleased(Guid edgeId, Vector2 graphSpaceReleasePosition)
Section titled “NotifyEdgeEndpointReleased(Guid edgeId, Vector2 graphSpaceReleasePosition)”public void NotifyEdgeEndpointReleased(System.Guid edgeId, UnityEngine.Vector2 graphSpaceReleasePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4271-4276
Feature 062 (E2) - release a known edge endpoint by id (used by tests and hosts that
already resolved the edge). RaisesOnEdgeEndpointDetachedwith the node
under the release point, ornullover empty canvas (the split case).
NotifyEdgeEndpointReleased(Vector2 graphSpaceReleasePosition)
Section titled “NotifyEdgeEndpointReleased(Vector2 graphSpaceReleasePosition)”public void NotifyEdgeEndpointReleased(UnityEngine.Vector2 graphSpaceReleasePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4253-4264
Feature 062 (E2) - finish the in-progress endpoint drag at
graphSpaceReleasePosition: clear the temp wire and raise
OnEdgeEndpointDetachedfor the grabbed edge. No-op when nothing is grabbed.
NotifyNodeDragHover(Guid draggedNodeId, Vector2 graphSpacePosition)
Section titled “NotifyNodeDragHover(Guid draggedNodeId, Vector2 graphSpacePosition)”public void NotifyNodeDragHover(System.Guid draggedNodeId, UnityEngine.Vector2 graphSpacePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3978-3983
Feature 062 (E1): raiseOnNodeDragHoverfor a drag of
draggedNodeId currently at graphSpacePosition.
The hovered node excludes the whole current selection (every node moving with the
drag) and resolves like the release will: cursor point first, then the dragged
node’s own rect overlap, so the affordance always previews the actual drop.
NotifyNodeReleased(Guid draggedNodeId, Vector2 graphSpaceReleasePosition)
Section titled “NotifyNodeReleased(Guid draggedNodeId, Vector2 graphSpaceReleasePosition)”public void NotifyNodeReleased(System.Guid draggedNodeId, UnityEngine.Vector2 graphSpaceReleasePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3995-4004
Feature 062 (E1): at drag release, raiseOnNodeDroppedOnNodewhen
draggedNodeIdis released over another node at
graphSpaceReleasePosition. No-op over empty canvas. The caller must
have already emitted the ordinary node-moved notification (E1: drop is additive).
Target resolution is two-stage: the cursor point wins when it sits inside a node;
otherwise the node the dragged rect overlaps the most counts, so “dragging one node
over another” registers even when the user grabbed the node by its edge and the
cursor sits outside the target at release.
PanBy(Vector2 viewDelta)
Section titled “PanBy(Vector2 viewDelta)”public void PanBy(UnityEngine.Vector2 viewDelta)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:777-783
Shifts the viewport by viewDelta in view pixels.
RefreshEdges()
Section titled “RefreshEdges()”public void RefreshEdges()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2438-2445
Forces a re-render of all edges. Call this after the graph has been modified and node geometry needs to be recalculated.
RemoveFromSelection(Guid nodeId)
Section titled “RemoveFromSelection(Guid nodeId)”public void RemoveFromSelection(System.Guid nodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3026-3033
Removes a node from the selection, reporting the change only when it was selected.
RenderEdgesImmediate()
Section titled “RenderEdgesImmediate()”public void RenderEdgesImmediate()Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:1640-1649
Feature 037 (Unity bug fix): synchronous edge rebuild. Used during a reroute
knot drag so the wire redraws in the same frame the knot moves, instead of
the two-frame delay imposed byschedule.Executewrapping in the default
RenderEdgespath. That delay made the wire visibly trail the
knot during fast drags.
ResolveEdgeLabelPlacement(Guid edgeId, Vector2 labelSize, float clearance, float maxPerpendicularOffset, IReadOnlyList<Rect> additionalOccupiedBounds, out Vector2 center)
Section titled “ResolveEdgeLabelPlacement(Guid edgeId, Vector2 labelSize, float clearance, float maxPerpendicularOffset, IReadOnlyList<Rect> additionalOccupiedBounds, out Vector2 center)”public BitQuirky.Graph.GraphView.Views.GraphEdgeLabelPlacementResult ResolveEdgeLabelPlacement(System.Guid edgeId, UnityEngine.Vector2 labelSize, float clearance, float maxPerpendicularOffset, System.Collections.Generic.IReadOnlyList<UnityEngine.Rect> additionalOccupiedBounds, out UnityEngine.Vector2 center)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2524-2566
Resolves a collision-free center for an axis-aligned edge label in graph/content-local
logical units. The label stays on the currently rendered route nearest its midpoint
whenever possible. If the route has no fit,maxPerpendicularOffset
bounds a near-route fallback. A returned center always keeps the label plus
clearanceoutside every rendered node card and every supplied
occupied bound; node positions and edge routing are never changed.
Parameters
edgeId: The rendered edge identity.labelSize: Measured label width and height in graph/content-local units.clearance: Required graph-space gap from every node card and additional occupied bound.maxPerpendicularOffset: Maximum graph-space fallback distance from the route midpoint.additionalOccupiedBounds: Optional graph/content-local bounds, such as labels already placed in deterministic render order.center: Resolved center in the same coordinate space as node layouts and edge geometry.
Returns
A result that distinguishes on-route and near-route fits from an absent edge or no available fit.
ResolveExecutionEdgeInteractionState(EdgeDefinition edge)
Section titled “ResolveExecutionEdgeInteractionState(EdgeDefinition edge)”public BitQuirky.Graph.GraphView.GraphEdgeInteractionState ResolveExecutionEdgeInteractionState(BitQuirky.Graph.EdgeDefinition edge)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3165-3174
Resolves the current embedder-owned interaction state for an execution edge. Non-execution edges and hosts without a resolver always return None.
SelectNodesInRect(Rect graphRect, bool additive)
Section titled “SelectNodesInRect(Rect graphRect, bool additive)”public void SelectNodesInRect(UnityEngine.Rect graphRect, bool additive)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3265-3299
Selects the nodes the rectangle covers, reporting one selection change for the whole sweep. Whether a node must be fully enclosed or merely touched is a configured option.
Parameters
additive: Keep the existing selection and add to it, rather than replacing it.
SetBoundaryRoutingResolver(Func<EdgeDefinition, bool> resolver)
Section titled “SetBoundaryRoutingResolver(Func<EdgeDefinition, bool> resolver)”public void SetBoundaryRoutingResolver(System.Func<BitQuirky.Graph.EdgeDefinition, bool> resolver)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3136-3143
Installs a selective card-boundary routing policy. Edges for which the resolver returns true attach to the source and target rectangle boundaries and use stable, obstacle-aware presentation geometry. Authored reroute points retain precedence. Passing null restores the established endpoint resolver and wire routing behavior.
SetEdgeArrowheadResolver(Func<EdgeDefinition, bool> resolver)
Section titled “SetEdgeArrowheadResolver(Func<EdgeDefinition, bool> resolver)”public void SetEdgeArrowheadResolver(System.Func<BitQuirky.Graph.EdgeDefinition, bool> resolver)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3151-3158
Installs an optional per-edge target-arrowhead opt-in. Edges the resolver marks true draw a filled arrowhead at the target endpoint. Additive: a null resolver draws no arrowheads, so existing consumers render unchanged.
SetEdgeEndpointResolver(Func<EdgeDefinition, bool, Vector2?> resolver)
Section titled “SetEdgeEndpointResolver(Func<EdgeDefinition, bool, Vector2?> resolver)”public void SetEdgeEndpointResolver(System.Func<BitQuirky.Graph.EdgeDefinition, bool, UnityEngine.Vector2?> resolver)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3121-3128
Installs an optional per-edge endpoint override. When the resolver returns a graph-space position for an endpoint, that position replaces the established port anchoring (Tree mode: card top / bottom center). Returning null keeps the default. The bool argument is true for the target (input) endpoint and false for the source (output) endpoint. Additive: a null resolver preserves the historical anchoring for every edge.
SetEdgeTreatmentResolver(Func<EdgeDefinition, EdgeTreatment> resolver)
Section titled “SetEdgeTreatmentResolver(Func<EdgeDefinition, EdgeTreatment> resolver)”public void SetEdgeTreatmentResolver(System.Func<BitQuirky.Graph.EdgeDefinition, BitQuirky.Graph.GraphView.Views.EdgeTreatment> resolver)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3102-3110
Install or clear the per-edge treatment resolver. The resolver is invoked once per execution / data edge on each render so consumers can map anEdgeDefinitionto one of the genericEdgeTreatmentvalues. Runtime execution paths should use idle / active only; failure and disabled are reserved for relationships whose edge itself is invalid or unavailable. Pass null to revert to Defaultfor every edge.
Remarks
Round Trip: the resolver lets a consumer (e.g. the Behavior Tree Editor) push semantic color into the renderer without the renderer knowing what a “behavior tree” is.
SetGridLinesVisible(bool visible)
Section titled “SetGridLinesVisible(bool visible)”public void SetGridLinesVisible(bool visible)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2834-2843
Shows or hides the ruled grid lines and repaints. Grid dots and the canvas fill are unaffected.
SetInvertZoomDirection(bool invert)
Section titled “SetInvertZoomDirection(bool invert)”public void SetInvertZoomDirection(bool invert)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2374-2378
Reverses the wheel-to-zoom direction on the live manipulator.
SetLayout(LayoutState layout)
Section titled “SetLayout(LayoutState layout)”public void SetLayout(BitQuirky.Graph.GraphView.ViewModels.LayoutState layout)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2268-2296
Applies a viewport and node arrangement wholesale: stores it on the model, clamps the zoom into range, moves every node that appears in the layout’s positions, repaints the wires, and reports the viewport change. Passing null leaves the canvas untouched beyond storing it on the model.
SetModel(GraphViewModel model)
Section titled “SetModel(GraphViewModel model)”public void SetModel(BitQuirky.Graph.GraphView.ViewModels.GraphViewModel model)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:803-825
Replaces the displayed document. This is the destructive model-switch path: selection, embedder overlays, and every node view are rebuilt. A populated incoming layout is authoritative; the configured layout strategy is used only when no positions were supplied.
SetPanZoomLocked(bool locked)
Section titled “SetPanZoomLocked(bool locked)”public void SetPanZoomLocked(bool locked)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2359-2364
Lock or unlock viewport pan + zoom interactions. While locked, user-initiated panning and zoom-wheel events are dropped at the manipulator level; selection clicks and node-context-menu clicks remain interactive (Behavior Tree Editor ). ProgrammaticSetLayout / FitToContents calls still apply, so the editor’s status bar / inspector affordances can override the lock when the user explicitly asks to fit/recenter.
Remarks
Round Trip: a graph tool that needs a “frozen viewport” while rebinding the underlying model can flip this without touching the manipulator chain.
SetScrollWheelBehavior(GraphScrollWheelBehavior behavior)
Section titled “SetScrollWheelBehavior(GraphScrollWheelBehavior behavior)”public void SetScrollWheelBehavior(BitQuirky.Graph.GraphView.GraphScrollWheelBehavior behavior)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2338-2342
Changes what an unmodified wheel scroll does, taking effect on the live manipulator without rebuilding the canvas.
SetSelection(Guid nodeId)
Section titled “SetSelection(Guid nodeId)”public void SetSelection(System.Guid nodeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3038-3046
Makes one node the entire selection, reporting a single change for the replacement.
SetZoom(float zoom)
Section titled “SetZoom(float zoom)”public void SetZoom(float zoom)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2301-2313
Zooms about the center of the viewport, so the content under the center stays put.
SetZoom(float zoom, Vector2 zoomCenterView)
Section titled “SetZoom(float zoom, Vector2 zoomCenterView)”public void SetZoom(float zoom, UnityEngine.Vector2 zoomCenterView)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2320-2332
Zooms about a point, keeping the graph position underzoomCenterView
(viewport pixels) under the same point afterwards. The zoom is clamped into range and
snapped when it lands within the configured snap tolerance.
SetZoomSensitivity(float sensitivity)
Section titled “SetZoomSensitivity(float sensitivity)”public void SetZoomSensitivity(float sensitivity)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2384-2392
Scales how much one wheel notch changes zoom. Values at or below zero are raised to a small positive minimum so scrolling never stops working.
ShowMarquee(Rect rect)
Section titled “ShowMarquee(Rect rect)”public void ShowMarquee(UnityEngine.Rect rect)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3240-3248
Shows the selection box at the given viewport rectangle. Does nothing when marquee selection is disabled.
StartConnection(PortView source)
Section titled “StartConnection(PortView source)”public void StartConnection(BitQuirky.Graph.GraphView.Views.PortView source)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3317-3366
Begins a connection drag from a port, drawing the temporary wire and reporting the drag’s source. Does nothing when the canvas is read-only or edge creation is off.
Exceptions
ArgumentNullException:sourceis null.InvalidOperationException: A drag is already in flight, or the port does not belong to a rendered node.
StartConnectionFromDataEdge(Guid edgeId, Vector2? visualStartWorld)
Section titled “StartConnectionFromDataEdge(Guid edgeId, Vector2? visualStartWorld)”public void StartConnectionFromDataEdge(System.Guid edgeId, UnityEngine.Vector2? visualStartWorld = null)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3386-3403
Feature round-trip 067 (US4): begin a standard connection drag whose
source is the origin (output) pin of the wire identified by
edgeId (its LiveEdgeId).
A reroute knot’s connector halo calls this so dragging out of the knot
creates a new wire carrying the same origin value as the wire the knot
sits on. Because it funnels intoStartConnectionwith the
origin pin, the resultingConnectionRequestis
indistinguishable from a pin drag (sameFrom*, ghost color, and
classification pass) for both data and execution edges. No-op when edge
creation is disabled, or when the edge or its origin pin cannot be
resolved (e.g. a stale id after a re-render).
visualStartWorld(feature round-trip 067 US4) is an optional
world-space point the ghost wire draws FROM instead of the origin pin: pass the
knot’s center so the drag visibly emanates from the knot the user grabbed, even
though the semantic source is the origin pin. Null keeps the pin-anchored ghost.
TryBeginEdgeEndpointDrag(Vector2 graphSpacePosition)
Section titled “TryBeginEdgeEndpointDrag(Vector2 graphSpacePosition)”public bool TryBeginEdgeEndpointDrag(UnityEngine.Vector2 graphSpacePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4086-4117
Feature 062 (E2) / round-trip 067 (US3): try to grab the edge whose curve passes nearest
graphSpacePosition(within the grab tolerance) so an endpoint can be
dragged. With a host validator present (rewire enabled) this picks data OR execution wires
and grabs the NEARER endpoint; without one it preserves the 062 behavior bit-for-bit
(data-only, always the target end). Returnsfalseover empty canvas. The manipulator
calls this on mouse-down; the lib makes no decision about what the grab means.
TryBeginEdgeEndpointDragFromPort(PortView portView)
Section titled “TryBeginEdgeEndpointDragFromPort(PortView portView)”public bool TryBeginEdgeEndpointDragFromPort(BitQuirky.Graph.GraphView.Views.PortView portView)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4126-4169
Feature round-trip 067 (US3): begin a quick-rewire endpoint drag of the wire connected at
portView: the endpoint AT that pin becomes the moving end, the other end
anchors. When several wires share the pin, the most recently drawn one is grabbed. Rewire is
validator-gated: with no host validator this is a no-op so non-rewire consumers are
unaffected. Returnsfalsewhen the pin carries no wire.
TryGetEdgeColor(Guid edgeId, out Color color)
Section titled “TryGetEdgeColor(Guid edgeId, out Color color)”public bool TryGetEdgeColor(System.Guid edgeId, out UnityEngine.Color color)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2499-2507
Returns the color currently used to render the wire with the givenLiveEdgeId. Used by the embedder to keep edge-attached UI in sync with the wire’s rendered color.
TryGetHorizontalViewportIndicator(out float normalizedStart, out float normalizedWidth)
Section titled “TryGetHorizontalViewportIndicator(out float normalizedStart, out float normalizedWidth)”public bool TryGetHorizontalViewportIndicator(out float normalizedStart, out float normalizedWidth)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2771-2792
Describes the horizontal slice of the scrollable extent the viewport currently shows, for driving a scrollbar or minimap indicator.
Parameters
normalizedStart: Left edge of the visible slice, from 0 to 1.normalizedWidth: Width of the visible slice, from 0 to 1.
Returns
False when there is no model, no content, or no usable viewport size, in which case the outputs describe a full-width slice.
TryGetNodeView(Guid nodeId, out NodeView nodeView)
Section titled “TryGetNodeView(Guid nodeId, out NodeView nodeView)”public bool TryGetNodeView(System.Guid nodeId, out BitQuirky.Graph.GraphView.Views.NodeView nodeView)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3067-3070
Look up the liveNodeView for nodeId.
Consumers use this to apply BT-specific decorations (active glow,
status pill, recent-change tint) without the renderer having any
knowledge of those semantics.
Remarks
Round Trip: any caller that needs to decorate node chrome from outside the renderer (live debug overlays, breakpoint markers, recent-write tint) should reach in through this accessor.
TryPickExecutionEdge(Vector2 graphSpacePosition, out Guid edgeId)
Section titled “TryPickExecutionEdge(Vector2 graphSpacePosition, out Guid edgeId)”public bool TryPickExecutionEdge(UnityEngine.Vector2 graphSpacePosition, out System.Guid edgeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2465-2470
Picks an execution edge using the host’s configured graph-space tolerance. The nearest edge wins and exact-distance ties are stable by edge ID.
TryPickExecutionEdge(Vector2 graphSpacePosition, float tolerance, out Guid edgeId)
Section titled “TryPickExecutionEdge(Vector2 graphSpacePosition, float tolerance, out Guid edgeId)”public bool TryPickExecutionEdge(UnityEngine.Vector2 graphSpacePosition, float tolerance, out System.Guid edgeId)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2475-2484
Picks an execution edge using an explicit graph-space tolerance.
UpdateConnection(Vector2 mousePosition)
Section titled “UpdateConnection(Vector2 mousePosition)”public void UpdateConnection(UnityEngine.Vector2 mousePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3411-3458
Tracks the pointer during a connection drag: redraws the temporary wire, reports the
legal candidate pin under the cursor, and remembers where the wire would be dropped.
Does nothing when no drag is in flight.mousePositionis in panel
space.
UpdateEdgeEndpointDrag(Vector2 graphSpacePosition)
Section titled “UpdateEdgeEndpointDrag(Vector2 graphSpacePosition)”public void UpdateEdgeEndpointDrag(UnityEngine.Vector2 graphSpacePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:4213-4246
Feature 062 (E2) / round-trip 067 (US3): update the in-progress endpoint drag: draw a temp
wire from the STATIONARY endpoint tographSpacePosition(the grabbed end
follows the cursor) and raiseOnEdgeEndpointDragHoverso the host can place a
split-preview affordance.
UpdateModel(GraphViewModel model, IReadOnlyCollection<Guid> changedNodeIds)
Section titled “UpdateModel(GraphViewModel model, IReadOnlyCollection<Guid> changedNodeIds)”public void UpdateModel(BitQuirky.Graph.GraphView.ViewModels.GraphViewModel model, System.Collections.Generic.IReadOnlyCollection<System.Guid> changedNodeIds = null)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:838-917
Applies a new snapshot of the current document while retaining stable node views.
Existing views are rebound to their new typed definitions; only added nodes or nodes whose
base graph presentation changed are recreated. IDs inchangedNodeIds
additionally invalidate embedder-owned card content without forcing view replacement.
Parameters
model: Complete current graph and authoritative layout snapshot.changedNodeIds: Optional stable node IDs whose external renderer projection changed. Null still detects changes represented byNodeDefinitionitself.
ViewToGraphSpace(Vector2 viewPosition)
Section titled “ViewToGraphSpace(Vector2 viewPosition)”public UnityEngine.Vector2 ViewToGraphSpace(UnityEngine.Vector2 viewPosition)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2964-2968
Converts a viewport-space point to graph space, undoing the current pan and zoom.
WorldToGraphSpace(Vector2 worldPos)
Section titled “WorldToGraphSpace(Vector2 worldPos)”public UnityEngine.Vector2 WorldToGraphSpace(UnityEngine.Vector2 worldPos)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3916-3919
Convert a panel-space (world) point into graph space, accounting for the host’s world transform and the current pan/zoom. Inverse of node placement.
GraphViewOptions
Section titled “GraphViewOptions”Category: Low-level runtime
class BitQuirky.Graph.GraphView.GraphViewOptionsSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:145-715
Configuration object passed intoGraphViewHostat construction time.
Responsibilities:
- Carry display-time settings (palette, grid, zoom limits, drag threshold) and interaction toggles (selection, marquee, node drag, edge creation, self-connection policy, keyboard delete) as plain mutable properties.
- Carry rendering hooks (INodeRenderer, optional
StyleSheetoverride) injected by the embedding tool.
Does NOT:
- Provide reroute (waypoint) integration. The reroute system in the upstream source depended on a domain-specific service that did not survive the 013-behavior-graph-refactor extraction; reroute can be reintroduced behind a Layer-1 interface as a follow-up.
Members
Section titled “Members”AccentColor
Section titled “AccentColor”public UnityEngine.Color AccentColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:288
Overrides the palette’s accent color.
AllowSelfConnections
Section titled “AllowSelfConnections”public bool AllowSelfConnections { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:578
Allows an output port to connect to a compatible input port on the same node. Disabled by default so existing graph consumers retain cycle rejection. Direction, execution/data family, duplicate-edge, and host validator checks still apply.
BackgroundColor
Section titled “BackgroundColor”public UnityEngine.Color BackgroundColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:290
The canvas fill drawn behind the grid.
CompositeClearValidator
Section titled “CompositeClearValidator”public System.Func<BitQuirky.Graph.PortDefinition, BitQuirky.Graph.GraphView.LiteralValidationResult> CompositeClearValidator { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:686
Asked whether a composite row may commit with every component left blank, which the editor reads as clearing the value. An invalid verdict blocks the commit and shows the host’s message. Null permits every clear.
CompositeComponentValidator
Section titled “CompositeComponentValidator”public System.Func<BitQuirky.Graph.PortDefinition, int, string, BitQuirky.Graph.GraphView.LiteralValidationResult> CompositeComponentValidator { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:674
Asked whether one component of a composite literal is acceptable. The integer is the component’s index in the port’s composite component labels. An invalid verdict marks that box and blocks the row’s commit. Null performs no validation.
ConnectionGhostDashLength
Section titled “ConnectionGhostDashLength”public float ConnectionGhostDashLength { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:355
Length of each visible dash when the connection ghost is dashed. The renderer requires at leastMinimumTempEdgePatternLength.
ConnectionGhostGapLength
Section titled “ConnectionGhostGapLength”public float ConnectionGhostGapLength { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:361
Length of each gap when the connection ghost is dashed. The renderer requires at leastMinimumTempEdgePatternLength.
ConnectionGhostStyle
Section titled “ConnectionGhostStyle”public BitQuirky.Graph.GraphView.GraphConnectionGhostStyle ConnectionGhostStyle { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:349
Controls the temporary connection wire’s stroke pattern. Solid preserves the established presentation; embedders opt in to dashed rendering explicitly.
ConnectionValidator
Section titled “ConnectionValidator”public System.Func<BitQuirky.Graph.GraphView.ConnectionCandidate, BitQuirky.Graph.GraphView.ConnectionVerdict> ConnectionValidator { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:702
Asked whether a structurally legal connection is also meaningful. The canvas checks direction, family, self-edge policy, and duplicates first, then consults this with the candidate normalized to output then input. An incompatible verdict suppresses the created-edge notification and raises a rejection carrying the verdict instead. Null accepts every structurally legal pair.
DataEdgeColor
Section titled “DataEdgeColor”public UnityEngine.Color DataEdgeColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:310
The color of data wires.
DefaultAccentColor
Section titled “DefaultAccentColor”public static UnityEngine.Color DefaultAccentColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:241-242
The Bit Quirky accent color.
DefaultBackgroundColor
Section titled “DefaultBackgroundColor”public static UnityEngine.Color DefaultBackgroundColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:245-246
The canvas fill behind the grid.
DefaultEdgeActiveColor
Section titled “DefaultEdgeActiveColor”public static UnityEngine.Color DefaultEdgeActiveColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:269-270
The color of an edge the host has marked active.
DefaultEdgeFailureColor
Section titled “DefaultEdgeFailureColor”public static UnityEngine.Color DefaultEdgeFailureColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:273-274
The color of an edge the host has marked failed.
DefaultEdgeIdleColor
Section titled “DefaultEdgeIdleColor”public static UnityEngine.Color DefaultEdgeIdleColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:265-266
The color of an edge at rest.
DefaultGridColor
Section titled “DefaultGridColor”public static UnityEngine.Color DefaultGridColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:249-250
The grid line color.
DefaultGridDotColor
Section titled “DefaultGridDotColor”public static UnityEngine.Color DefaultGridDotColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:261-262
The color of grid dots.
DefaultPortColor
Section titled “DefaultPortColor”public static UnityEngine.Color DefaultPortColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:253-254
The color of a port with no type-derived color of its own.
DefaultPortInvalidColor
Section titled “DefaultPortInvalidColor”public static UnityEngine.Color DefaultPortInvalidColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:257-258
The color a port takes while it refuses the connection being dragged.
DefaultPrimaryColor
Section titled “DefaultPrimaryColor”public static UnityEngine.Color DefaultPrimaryColor { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:237-238
The Bit Quirky primary color, used for data wires and connected ports unless overridden.
DotInterval
Section titled “DotInterval”public int DotInterval { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:529
Feature 043 / Phase 6 / + FR-064b (“dot frequency”).
Default0means dots fall on the existing
MajorLineFrequencyrhythm; any positive value
places a dot at every intersection where
index % DotInterval == 0on both axes. Round Trip uses
1for an at-every-intersection peppered pattern.
DragThreshold
Section titled “DragThreshold”public float DragThreshold { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:548
Distance in pixels the pointer must travel before a press is treated as a drag rather than a click.
DrawEdgesOnTop
Section titled “DrawEdgesOnTop”public bool DrawEdgesOnTop { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:486
Controls whether wires are painted above nodes. Round Trip migration note: keep this true for existing CodeFlow graphs with reroute editing; tree views should set it false so branch lines do not cover node bodies.
EdgeActiveColor
Section titled “EdgeActiveColor”public UnityEngine.Color EdgeActiveColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:318
The color of an edge the host has marked active.
EdgeActiveStrokeWidth
Section titled “EdgeActiveStrokeWidth”public float EdgeActiveStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:320
Stroke width of an edge the host has marked active.
EdgeDisabledColor
Section titled “EdgeDisabledColor”public UnityEngine.Color EdgeDisabledColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:326
The color of a disabled edge.
EdgeDisabledOpacity
Section titled “EdgeDisabledOpacity”public float EdgeDisabledOpacity { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:330
Opacity of a disabled edge, from 0 to 1.
EdgeDisabledStrokeWidth
Section titled “EdgeDisabledStrokeWidth”public float EdgeDisabledStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:328
Stroke width of a disabled edge.
EdgeFailureColor
Section titled “EdgeFailureColor”public UnityEngine.Color EdgeFailureColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:322
The color of an edge the host has marked failed.
EdgeFailureStrokeWidth
Section titled “EdgeFailureStrokeWidth”public float EdgeFailureStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:324
Stroke width of an edge the host has marked failed.
EdgeHoveredColor
Section titled “EdgeHoveredColor”public UnityEngine.Color? EdgeHoveredColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:335
The color of a hovered edge, or null to keep the edge’s resting color and change only its stroke width on hover.
EdgeHoveredStrokeWidth
Section titled “EdgeHoveredStrokeWidth”public float EdgeHoveredStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:337
Stroke width of a hovered edge.
EdgeIdleColor
Section titled “EdgeIdleColor”public UnityEngine.Color EdgeIdleColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:312
The color of an edge at rest.
EdgeIdleOpacity
Section titled “EdgeIdleOpacity”public float EdgeIdleOpacity { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:316
Opacity of an edge at rest, from 0 (invisible) to 1 (opaque).
EdgeIdleStrokeWidth
Section titled “EdgeIdleStrokeWidth”public float EdgeIdleStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:314
Stroke width of an edge at rest.
EdgeRouting
Section titled “EdgeRouting”public BitQuirky.Graph.GraphView.GraphEdgeRouting EdgeRouting { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:449
Controls how wires are drawn. Round Trip migration note: set this toBezierwhen porting the existing Unity/Avalonia method graph renderer; tree tools should useOrthogonal.
EdgeSelectedColor
Section titled “EdgeSelectedColor”public UnityEngine.Color EdgeSelectedColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:339
The color of a selected edge.
EdgeSelectedStrokeWidth
Section titled “EdgeSelectedStrokeWidth”public float EdgeSelectedStrokeWidth { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:341
Stroke width of a selected edge.
EnableEdgeCreation
Section titled “EnableEdgeCreation”public bool EnableEdgeCreation { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:615-619
Whether the reader may draw a new connection by dragging from a port. Reads false wheneverReadOnlyis set. Defaults to false, so a host that only displays a graph stays non-destructive without opting out.
EnableEdgeEndpointDetach
Section titled “EnableEdgeEndpointDetach”public bool EnableEdgeEndpointDetach { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:644-648
Whether left-dragging an existing connection’s endpoint off a port detaches it, letting the host re-route or re-target that end. Reads false wheneverReadOnlyis set. Defaults to false, because turning it on replaces the marquee gesture on the empty canvas near an endpoint.
EnableKeyboardDelete
Section titled “EnableKeyboardDelete”public bool EnableKeyboardDelete { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:627-631
Whether Delete and Backspace remove the current selection. Reads false whenever ReadOnlyis set. Defaults to false, so keyboard focus on a display-only canvas cannot destroy anything.
EnableMarqueeSelection
Section titled “EnableMarqueeSelection”public bool EnableMarqueeSelection { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:571
Whether dragging on empty canvas draws a selection box.
EnableNodeDrag
Section titled “EnableNodeDrag”public bool EnableNodeDrag { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:603-607
Whether the reader may drag nodes to new positions. Reads false whenever ReadOnlyis set, regardless of what was configured, so read-only mode cannot be overridden one gesture at a time. Defaults to true.
EnableSelection
Section titled “EnableSelection”public bool EnableSelection { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:569
Whether clicking a node selects it.
ExecutionEdgeColor
Section titled “ExecutionEdgeColor”public UnityEngine.Color ExecutionEdgeColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:308
The color of execution wires; shared with the execution pin glyph and the legend row.
ExecutionEdgeInteractionStateResolver
Section titled “ExecutionEdgeInteractionStateResolver”public System.Func<BitQuirky.Graph.EdgeDefinition, BitQuirky.Graph.GraphView.GraphEdgeInteractionState> ExecutionEdgeInteractionStateResolver { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:441
Optional domain-neutral callback that supplies current hover/selection state for execution edges. The host never owns product selection semantics; consumers update their captured state and request an edge refresh when it changes.
ExecutionEdgePickTolerance
Section titled “ExecutionEdgePickTolerance”public float ExecutionEdgePickTolerance { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:343
How far in pixels the pointer may sit from an execution wire and still pick it.
GridColor
Section titled “GridColor”public UnityEngine.Color GridColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:292
The color of the grid lines.
GridDotColor
Section titled “GridDotColor”public UnityEngine.Color GridDotColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:507
The color of grid dots.
GridDotRadius
Section titled “GridDotRadius”public float GridDotRadius { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:509
Radius in graph units of a grid dot.
GridSpacing
Section titled “GridSpacing”public float GridSpacing { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:501
Distance in graph units between adjacent grid lines.
InvertZoomDirection
Section titled “InvertZoomDirection”public bool InvertZoomDirection { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:552
Whether scrolling up zooms out instead of in.
LayoutStrategy
Section titled “LayoutStrategy”public BitQuirky.Graph.GraphView.IGraphLayoutStrategy LayoutStrategy { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:495
Optional automatic layout strategy applied when a model is set. Round Trip migration note: leave this null when the engine supplies persisted method-graph positions, or provide a DAG strategy from the Round Trip layout service. Behavior-tree editors should useTreeLayoutStrategy.
LiteralValidator
Section titled “LiteralValidator”public System.Func<BitQuirky.Graph.PortDefinition, string, BitQuirky.Graph.GraphView.LiteralValidationResult> LiteralValidator { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:662
Asked on every keystroke in the inline literal editor whether the typed text is acceptable for that port. An invalid verdict blocks the commit, marks the field, and shows the host’s message verbatim. Null performs no validation.
MajorLineFrequency
Section titled “MajorLineFrequency”public int MajorLineFrequency { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:503
Number of minor grid steps between major lines; every nth line is drawn heavier.
MarqueeFullyEnclosedOnly
Section titled “MarqueeFullyEnclosedOnly”public bool MarqueeFullyEnclosedOnly { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:587
When true, box-drag marquee selection picks only nodes whose bounds are fully enclosedby the marquee rectangle, rather than any node the rectangle merely intersects. Default false preserves the intersect behavior for existing consumers; the Round Trip method-graph host opts in (: fully-enclosed-only).
MaxZoom
Section titled “MaxZoom”public float MaxZoom { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:535
Closest the reader may zoom in, as a scale factor.
MinZoom
Section titled “MinZoom”public float MinZoom { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:533
Farthest the reader may zoom out, as a scale factor.
NodePresentation
Section titled “NodePresentation”public BitQuirky.Graph.GraphView.GraphNodePresentation NodePresentation { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:467
Controls the node chrome. Round Trip migration note: use CodeFlowfor the existing method graph nodes with header/body/pin rows. Tree editors should useTree for compact top-down nodes.
NodeRenderer
Section titled “NodeRenderer”public BitQuirky.Graph.GraphView.INodeRenderer NodeRenderer { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:709
Builds the visual for each node. Replace this to draw custom node content; the default renderer draws the standard card.
ObjectReferenceClearIcon
Section titled “ObjectReferenceClearIcon”public UnityEngine.UIElements.VectorImage ObjectReferenceClearIcon { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:422
Feature 072 : host-supplied icon for the object combo’s trailing CLEAR action, which empties the reference. Offered on a missing reference too, which is what keeps that state recoverable rather than a dead end. Null hides the action.
ObjectReferenceDropFilter
Section titled “ObjectReferenceDropFilter”public System.Func<BitQuirky.Graph.PortDefinition, System.Collections.Generic.IReadOnlyList<UnityEngine.Object>, bool> ObjectReferenceDropFilter { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:434
Feature 072 : host-supplied answer to “would this pin accept these dragged objects?”, consulted while a drag hovers an object combo and again at the drop.
The library holds NO opinion about asset types: it draws the accept or refuse feedback the verdict implies and raises the drop only when the verdict was accept, exactly as the inline literal editor defers toLiteralValidator. Null (the default) refuses every drop, so a host that has not opted in is unaffected and nothing is ever assigned by accident.
ObjectReferenceLocateIcon
Section titled “ObjectReferenceLocateIcon”public UnityEngine.UIElements.VectorImage ObjectReferenceLocateIcon { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:415
Round Trip feature 072 : host-supplied icon for the object combo’s trailing
LOCATE action, which reveals the referenced asset in the host’s project browser. The library
draws whateverVectorImageit is handed, tinted from
USS, and only on a combo whose reference resolves. Null (the default) hides the action
rather than inventing a glyph.
OverrideStyleSheet
Section titled “OverrideStyleSheet”public UnityEngine.UIElements.StyleSheet OverrideStyleSheet { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:714
A style sheet applied instead of the package’s own, for a host that restyles the canvas wholesale. Null uses the packaged styles.
PortClickPredicate
Section titled “PortClickPredicate”public System.Func<BitQuirky.Graph.PortDefinition, bool> PortClickPredicate { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:393
Optional per-port predicate marking a port as click-eligible, so a plain click on it can mean something other than “begin a connection”.
For a port this returns true for, the edge connector does NOT start a connection on
mouse-down. It captures the mouse and waits: once the pointer travels further than
DragThresholdthe connection starts exactly as it always did, and a release
before that threshold instead raisesGraphViewHost.OnPortClickedwhile creating
neither a connection nor a drop-on-canvas event.
Null (the default) keeps every port starting its connection on mouse-down, bit-for-bit today’s behavior. The library assigns no meaning to a port click; the host decides what one is for.
PortColor
Section titled “PortColor”public UnityEngine.Color PortColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:295
The color of a port that has no type-derived color.
PortConnectedColor
Section titled “PortConnectedColor”public UnityEngine.Color PortConnectedColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:299
The color of a port that already has at least one wire.
PortGlyphStyleResolver
Section titled “PortGlyphStyleResolver”public System.Func<BitQuirky.Graph.NodeDefinition, BitQuirky.Graph.PortDefinition, BitQuirky.Graph.GraphView.GraphPortGlyphStyle> PortGlyphStyleResolver { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:375
Optional per-port glyph-style resolver. Null preserves filled glyphs for every port. The node and port arguments provide stable scope without assigning product meaning to the shared renderer.
PortHoverColor
Section titled “PortHoverColor”public UnityEngine.Color PortHoverColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:297
The color of a port under the pointer.
PortInvalidColor
Section titled “PortInvalidColor”public UnityEngine.Color PortInvalidColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:301
The color a port takes while it refuses the connection being dragged.
PortPlacement
Section titled “PortPlacement”public BitQuirky.Graph.GraphView.GraphPortPlacement PortPlacement { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:458
Controls where normal input/output port containers are placed on each node. Round Trip migration note: use LeftRightfor CodeFlow method graphs; tree tools should use TopBottom.
PrimaryColor
Section titled “PrimaryColor”public UnityEngine.Color PrimaryColor { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:286
Overrides the palette’s primary color for data wires and connected ports.
ReadOnly
Section titled “ReadOnly”public bool ReadOnly { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:567
Turns off every editing interaction at once: node drag, edge creation, endpoint detach, and keyboard delete all report false while this is set, without losing the values the embedder configured.
ScrollPanMultiplier
Section titled “ScrollPanMultiplier”public float ScrollPanMultiplier { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:550
Multiplier converting one scroll delta unit into panned pixels.
ScrollWheelBehavior
Section titled “ScrollWheelBehavior”public BitQuirky.Graph.GraphView.GraphScrollWheelBehavior ScrollWheelBehavior { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:559
Controls wheel and trackpad scroll handling. Round Trip migration note: leave this asZoomto preserve existing method-graph interaction, or opt in per host.
ShowDataEdges
Section titled “ShowDataEdges”public bool ShowDataEdges { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:475
Controls whether non-execution edges are rendered. Round Trip migration note: keep this true so data wires remain visible. Tree views can set it false when non-tree relationship edges would obscure the tree spine.
ShowGrid
Section titled “ShowGrid”public bool ShowGrid { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:499
Whether the grid is drawn behind the graph.
ShowGridDots
Section titled “ShowGridDots”public bool ShowGridDots { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:505
Whether dots are drawn at grid intersections.
ShowGridLines
Section titled “ShowGridLines”public bool ShowGridLines { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:519
Feature 043 / Phase 6 / : whenfalse, the two-tier
minor + major line grid is suppressed and only the canvas fill
and (optional) dots are drawn. Defaults totrueso every
pre-existing consumer (behavior tree, statechart, generic
hosts) keeps its current visual; Round Trip flips this to
falsefor the design’s soft dot grid.
ShowPortLabels
Section titled “ShowPortLabels”public bool ShowPortLabels { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:478
Whether port labels are drawn next to their pins.
SnapConnectionGhostToHoveredPort
Section titled “SnapConnectionGhostToHoveredPort”public bool SnapConnectionGhostToHoveredPort { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:368
When enabled, a temporary connection wire terminates at the resolved port glyph while the cursor is over a structurally legal candidate. Disabled by default so existing embedders retain cursor-following connection ghosts.
public BitQuirky.Graph.GraphView.GraphTheme Theme { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:280
The palette and typography the canvas renders with. Prefer setting this over the individual color properties, so every presentation shares one visual language.
WiredLiteralNoEntryIcon
Section titled “WiredLiteralNoEntryIcon”public UnityEngine.UIElements.VectorImage WiredLiteralNoEntryIcon { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:406
Optional host-supplied glyph shown on hover of an input port that is literal-eligible but
currently wired (IsLiteralEligible && IsWired), marking the port as one that cannot
take a typed value while a wire supplies it.
The library holds no opinion about what the mark means or where its asset comes from: it draws
whateverVectorImagethe host hands it, tinted from USS, and
only for ports the host has already flagged wired and eligible. Null (the default) shows no mark,
so every host that does not opt into literal entry is unaffected.
ZoomSensitivity
Section titled “ZoomSensitivity”public float ZoomSensitivity { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:546
Multiplier applied to each wheel notch before it changes zoom; larger values zoom faster.
ZoomSnapTolerance
Section titled “ZoomSnapTolerance”public float ZoomSnapTolerance { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:544
How far fromZoomSnapValuethe zoom may be and still snap to it. Zero or less disables snapping.
ZoomSnapValue
Section titled “ZoomSnapValue”public float ZoomSnapValue { get; set; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:539
The zoom level nearby zoom values snap to, so the reader can land on it exactly.
DefaultAccentColorB
Section titled “DefaultAccentColorB”public const byte DefaultAccentColorB = 67Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:158
Blue channel of DefaultAccentColor.
DefaultAccentColorG
Section titled “DefaultAccentColorG”public const byte DefaultAccentColorG = 58Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:156
Green channel of DefaultAccentColor.
DefaultAccentColorR
Section titled “DefaultAccentColorR”public const byte DefaultAccentColorR = 18Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:154
Red channel of DefaultAccentColor.
DefaultBackgroundColorComponent
Section titled “DefaultBackgroundColorComponent”public const byte DefaultBackgroundColorComponent = 38Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:160
The value used for all three channels of the neutral DefaultBackgroundColor.
DefaultDragThreshold
Section titled “DefaultDragThreshold”public const float DefaultDragThreshold = 4Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:214
Default distance in pixels the pointer must travel before a press becomes a drag.
DefaultEdgeActiveColorB
Section titled “DefaultEdgeActiveColorB”public const byte DefaultEdgeActiveColorB = 219Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:188
Blue channel of DefaultEdgeActiveColor.
DefaultEdgeActiveColorG
Section titled “DefaultEdgeActiveColorG”public const byte DefaultEdgeActiveColorG = 139Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:186
Green channel of DefaultEdgeActiveColor.
DefaultEdgeActiveColorR
Section titled “DefaultEdgeActiveColorR”public const byte DefaultEdgeActiveColorR = 79Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:184
Red channel of DefaultEdgeActiveColor.
DefaultEdgeActiveStrokeWidth
Section titled “DefaultEdgeActiveStrokeWidth”public const float DefaultEdgeActiveStrokeWidth = 1.75Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:222
Default stroke width of an edge the host has marked active.
DefaultEdgeDisabledOpacity
Section titled “DefaultEdgeDisabledOpacity”public const float DefaultEdgeDisabledOpacity = 0.3Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:228
Default opacity of a disabled edge, from 0 to 1.
DefaultEdgeDisabledStrokeWidth
Section titled “DefaultEdgeDisabledStrokeWidth”public const float DefaultEdgeDisabledStrokeWidth = 1.25Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:226
Default stroke width of a disabled edge.
DefaultEdgeFailureColorB
Section titled “DefaultEdgeFailureColorB”public const byte DefaultEdgeFailureColorB = 79Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:194
Blue channel of DefaultEdgeFailureColor.
DefaultEdgeFailureColorG
Section titled “DefaultEdgeFailureColorG”public const byte DefaultEdgeFailureColorG = 85Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:192
Green channel of DefaultEdgeFailureColor.
DefaultEdgeFailureColorR
Section titled “DefaultEdgeFailureColorR”public const byte DefaultEdgeFailureColorR = 216Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:190
Red channel of DefaultEdgeFailureColor.
DefaultEdgeFailureStrokeWidth
Section titled “DefaultEdgeFailureStrokeWidth”public const float DefaultEdgeFailureStrokeWidth = 1.5Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:224
Default stroke width of an edge the host has marked failed.
DefaultEdgeHoveredStrokeWidth
Section titled “DefaultEdgeHoveredStrokeWidth”public const float DefaultEdgeHoveredStrokeWidth = 3Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:230
Default stroke width of a hovered edge.
DefaultEdgeIdleColorB
Section titled “DefaultEdgeIdleColorB”public const byte DefaultEdgeIdleColorB = 176Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:182
Blue channel of DefaultEdgeIdleColor.
DefaultEdgeIdleColorG
Section titled “DefaultEdgeIdleColorG”public const byte DefaultEdgeIdleColorG = 168Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:180
Green channel of DefaultEdgeIdleColor.
DefaultEdgeIdleColorR
Section titled “DefaultEdgeIdleColorR”public const byte DefaultEdgeIdleColorR = 168Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:178
Red channel of DefaultEdgeIdleColor.
DefaultEdgeIdleOpacity
Section titled “DefaultEdgeIdleOpacity”public const float DefaultEdgeIdleOpacity = 0.55Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:220
Default opacity of an edge at rest, from 0 to 1.
DefaultEdgeIdleStrokeWidth
Section titled “DefaultEdgeIdleStrokeWidth”public const float DefaultEdgeIdleStrokeWidth = 1.25Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:218
Default stroke width of an edge at rest.
DefaultEdgeSelectedStrokeWidth
Section titled “DefaultEdgeSelectedStrokeWidth”public const float DefaultEdgeSelectedStrokeWidth = 4Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:232
Default stroke width of a selected edge.
DefaultExecutionEdgePickTolerance
Section titled “DefaultExecutionEdgePickTolerance”public const float DefaultExecutionEdgePickTolerance = 6Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:234
Default pointer distance in pixels within which a click still picks an execution edge.
DefaultGridColorComponent
Section titled “DefaultGridColorComponent”public const byte DefaultGridColorComponent = 64Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:162
The value used for all three channels of the neutral DefaultGridColor.
DefaultGridDotColorB
Section titled “DefaultGridDotColorB”public const byte DefaultGridDotColorB = 28Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:176
Blue channel of DefaultGridDotColor.
DefaultGridDotColorG
Section titled “DefaultGridDotColorG”public const byte DefaultGridDotColorG = 26Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:174
Green channel of DefaultGridDotColor.
DefaultGridDotColorR
Section titled “DefaultGridDotColorR”public const byte DefaultGridDotColorR = 26Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:172
Red channel of DefaultGridDotColor.
DefaultGridDotRadius
Section titled “DefaultGridDotRadius”public const float DefaultGridDotRadius = 0.85Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:202
Default radius in graph units of a grid dot.
DefaultGridSpacing
Section titled “DefaultGridSpacing”public const float DefaultGridSpacing = 20Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:198
Default distance in graph units between adjacent grid lines.
DefaultMajorLineFrequency
Section titled “DefaultMajorLineFrequency”public const int DefaultMajorLineFrequency = 5Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:200
Default number of minor grid steps between major lines.
DefaultMaxZoom
Section titled “DefaultMaxZoom”public const float DefaultMaxZoom = 2Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:206
Default closest the canvas may be zoomed in, as a scale factor.
DefaultMinZoom
Section titled “DefaultMinZoom”public const float DefaultMinZoom = 0.25Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:204
Default closest the canvas may be zoomed out, as a scale factor.
DefaultOpaqueAlpha
Section titled “DefaultOpaqueAlpha”public const byte DefaultOpaqueAlpha = 255Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:196
The alpha channel shared by every fully opaque default color.
DefaultPortColorComponent
Section titled “DefaultPortColorComponent”public const float DefaultPortColorComponent = 0.6Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:164
The value used for all three channels of the neutral DefaultPortColor, in normalized 0-1 form.
DefaultPortInvalidColorB
Section titled “DefaultPortInvalidColorB”public const byte DefaultPortInvalidColorB = 79Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:170
Blue channel of DefaultPortInvalidColor.
DefaultPortInvalidColorG
Section titled “DefaultPortInvalidColorG”public const byte DefaultPortInvalidColorG = 83Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:168
Green channel of DefaultPortInvalidColor.
DefaultPortInvalidColorR
Section titled “DefaultPortInvalidColorR”public const byte DefaultPortInvalidColorR = 217Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:166
Red channel of DefaultPortInvalidColor.
DefaultPrimaryColorB
Section titled “DefaultPrimaryColorB”public const byte DefaultPrimaryColorB = 219Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:152
Blue channel of DefaultPrimaryColor.
DefaultPrimaryColorG
Section titled “DefaultPrimaryColorG”public const byte DefaultPrimaryColorG = 209Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:150
Green channel of DefaultPrimaryColor.
DefaultPrimaryColorR
Section titled “DefaultPrimaryColorR”public const byte DefaultPrimaryColorR = 53Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:148
Red channel of DefaultPrimaryColor.
DefaultScrollPanMultiplier
Section titled “DefaultScrollPanMultiplier”public const float DefaultScrollPanMultiplier = 16Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:216
Default multiplier converting one scroll delta unit into panned pixels.
DefaultZoomSensitivity
Section titled “DefaultZoomSensitivity”public const float DefaultZoomSensitivity = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:212
Default multiplier applied to a wheel notch before it changes zoom.
DefaultZoomSnapTolerance
Section titled “DefaultZoomSnapTolerance”public const float DefaultZoomSnapTolerance = 0.02Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:210
Default distance from DefaultZoomSnapValue within which zoom snaps to it.
DefaultZoomSnapValue
Section titled “DefaultZoomSnapValue”public const float DefaultZoomSnapValue = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:208
Default zoom level that nearby zoom values snap to, so 100% is easy to land on.
GraphViewportFitAlignment
Section titled “GraphViewportFitAlignment”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.GraphViewportFitAlignmentSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:19-25
Underlying type: int
Where framed content is placed in the viewport when the canvas fits or frames the graph.
Members
Section titled “Members”Center
Section titled “Center”Center = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:22
Center the content bounds in both axes.
TopCenter
Section titled “TopCenter”TopCenter = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:24
Center the content horizontally and align its top edge with the top of the viewport.
IGraphLayoutStrategy
Section titled “IGraphLayoutStrategy”Category: Low-level runtime
interface BitQuirky.Graph.GraphView.IGraphLayoutStrategySource declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:15-22
Arranges a graph’s nodes. A strategy reads the graph and returns positions; it never writes to the graph, so a host can discard the result or merge it with positions the reader pinned.
Members
Section titled “Members”BuildLayout(GraphDefinition graph)
Section titled “BuildLayout(GraphDefinition graph)”BitQuirky.Graph.GraphView.ViewModels.LayoutState BuildLayout(BitQuirky.Graph.GraphDefinition graph)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:21
Computes node positions for the graph and returns them in a fresh layout, leaving the viewport at its default. An empty graph yields an empty layout.
INodeRenderer
Section titled “INodeRenderer”Category: Low-level runtime
interface BitQuirky.Graph.GraphView.INodeRendererSource declaration: ../bitquirky-graph/Editor/GraphView/INodeRenderer.cs:20-27
Hook for embedding tools that want to inject custom visual content into a renderedNodeView.
Responsibilities:
- Receive the renderer-agnosticNodeDefinitionand the already-builtNodeViewvisual element so the embedder can populate the content area with tool-specific decoration.
Does NOT:
- Mutate node geometry (size / position) - those are owned by the layout pipeline and the host.
Members
Section titled “Members”Render(NodeDefinition node, NodeView nodeView)
Section titled “Render(NodeDefinition node, NodeView nodeView)”void Render(BitQuirky.Graph.NodeDefinition node, BitQuirky.Graph.GraphView.Views.NodeView nodeView)Source declaration: ../bitquirky-graph/Editor/GraphView/INodeRenderer.cs:26
Fills the node’s content area for the given definition. Called once per node when the card is built and again when the host asks for that node to refresh.
LiteralValidationResult
Section titled “LiteralValidationResult”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.LiteralValidationResultSource declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:66-88
Feature round-trip 070: the minimal, C#-agnostic verdict the shared inline literal editor exchanges with its host. The host owns every rule and every word of the message; the library only reads IsValid to gate commit and renders Messageverbatim as the toast. Keeping this shape free of type symbols is what lets the library stay ignorant of C# (Principle X, ).
Members
Section titled “Members”IsValid
Section titled “IsValid”public bool IsValid { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:81
True when the typed text may be committed for this port.
Message
Section titled “Message”public string Message { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:84
The host-composed reason shown while invalid; ignored when IsValid is true.
public static BitQuirky.Graph.GraphView.LiteralValidationResult Valid { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:87
A valid verdict with no message, the resting state of an empty or acceptable value.
LiteralValidationResult(bool isValid, string message)
Section titled “LiteralValidationResult(bool isValid, string message)”public LiteralValidationResult(bool isValid, string message)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:74-78
Composes a verdict for one typed value:isValidgates the commit and
messageis the host’s own wording shown while invalid, passed through
unchanged. Pass a null message with a valid verdict, or use
Validfor that resting case.
NodeDropOnNode
Section titled “NodeDropOnNode”Category: Low-level runtime
readonly struct BitQuirky.Graph.GraphView.NodeDropOnNodeSource declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:16-38
A renderer-agnostic observation that one node was released directly over another node at the end of a drag. Carries only ids and a graph-space position - no host (Round Trip / Engine) types leak into the lib. It is emitted alongside (never in place of) the normal node-moved notification, so a host that rejects the drop as ineligible still gets the ordinary canvas-drag behavior. The host decides what the gesture means (e.g. a GET-pill consolidate); the lib makes no eligibility decision.
Members
Section titled “Members”DraggedNodeId
Section titled “DraggedNodeId”public System.Guid DraggedNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:31
The node the user dragged.
ReleasePosition
Section titled “ReleasePosition”public UnityEngine.Vector2 ReleasePosition { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:37
The release point in graph space.
TargetNodeId
Section titled “TargetNodeId”public System.Guid TargetNodeId { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:34
The node the dragged node was released over (never the dragged node itself).
NodeDropOnNode(Guid draggedNodeId, Guid targetNodeId, Vector2 releasePosition)
Section titled “NodeDropOnNode(Guid draggedNodeId, Guid targetNodeId, Vector2 releasePosition)”public NodeDropOnNode(System.Guid draggedNodeId, System.Guid targetNodeId, UnityEngine.Vector2 releasePosition)Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:23-28
Records one node released over another.draggedNodeIdand
targetNodeIdmust differ, since a node released over itself is not
this gesture, andreleasePositionis the release point in graph space.
TreeLayoutOrientation
Section titled “TreeLayoutOrientation”Category: Low-level runtime
enum BitQuirky.Graph.GraphView.TreeLayoutOrientationSource declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:35-41
Underlying type: int
Orientation forTreeLayoutStrategy. Vertical places the root at the top and grows the tree downwards (standard behavior-tree presentation); Horizontal places the root at the left and grows the tree rightwards (statechart-style flow).
Remarks
Round Trip: any graph tool that wants to flip orientation at runtime should switch this value rather than swapping in a parallel layout class.
Members
Section titled “Members”Horizontal
Section titled “Horizontal”Horizontal = 1Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:40
Root at the left, growing rightwards.
Vertical
Section titled “Vertical”Vertical = 0Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:38
Root at the top, growing downwards.
TreeLayoutStrategy
Section titled “TreeLayoutStrategy”Category: Low-level runtime
class BitQuirky.Graph.GraphView.TreeLayoutStrategySource declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:60-355
Implements: IGraphLayoutStrategy
Ordered rooted-tree layout for tree editors. Round Trip migration note: this is not suitable for method/data-flow graphs; those need a DAG layout/persisted layout path. Use this only for graphs where execution edges form the visible tree spine.
Determinism guarantee: runningBuildLayouttwice on the sameGraphDefinition(identical node ids, widths, heights, and edges) produces byte-identical LayoutStatevalues. The algorithm is deterministic because (1) node enumeration follows the input Nodesorder, (2) child enumeration follows the inputEdgesorder, and (3) widths/heights come straight fromWidth andHeight. Behavior Tree Editor
- rely on this guarantee.
Members
Section titled “Members”Orientation
Section titled “Orientation”public BitQuirky.Graph.GraphView.TreeLayoutOrientation Orientation { get; }Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:88
Which way this strategy grows the tree.
TreeLayoutStrategy(float siblingSpacing, float levelSpacing, Vector2? origin, TreeLayoutOrientation orientation)
Section titled “TreeLayoutStrategy(float siblingSpacing, float levelSpacing, Vector2? origin, TreeLayoutOrientation orientation)”public TreeLayoutStrategy(float siblingSpacing = 34, float levelSpacing = 58, UnityEngine.Vector2? origin = null, BitQuirky.Graph.GraphView.TreeLayoutOrientation orientation = Vertical)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:75-85
Configures the spacing this strategy lays out with.
siblingSpacingis the gap in graph units between adjacent siblings
andlevelSpacingthe gap between successive levels, both measured
between node edges rather than centers.originis where the first
root is placed, defaulting to (80, 60) so the tree clears the canvas edge, and
orientationchooses whether the tree grows downwards or rightwards.
BuildLayout(GraphDefinition graph)
Section titled “BuildLayout(GraphDefinition graph)”public BitQuirky.Graph.GraphView.ViewModels.LayoutState BuildLayout(BitQuirky.Graph.GraphDefinition graph)Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:94-97
Places every node reachable from the graph’s roots, using the authored node widths and heights. Repeating the call on the same graph produces identical positions.
Source fingerprint: sha256:ad0983d00d773d882bc61865e18d8c5559e009d181e5891575cd7f262515b23e