Skip to content
Bit Quirky Behavior Trees and
State Machines

Search documentation

All topics and APIs

Close returns focus to Search.

What are you looking for?

Try a common topic or enter a complete API identifier.

Browse the reference instead

Esc closes · Tab reaches results · Enter opens the focused link

v0.6.0
Menu

Assembly: BitQuirky.Graph.GraphView.Editor

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.ConnectionCandidate

Source 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).

C#
public BitQuirky.Graph.NodeDefinition FromNode { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:20

The node on the output side of the candidate.

C#
public BitQuirky.Graph.PortDefinition FromPort { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:22

The port the connection would leave.

C#
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.

C#
public BitQuirky.Graph.NodeDefinition ToNode { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:24

The node on the input side of the candidate.

C#
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)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.ConnectionDragSource

Source 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 aPortView, node view, or other transient UI state.

C#
public bool IsExecution { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:57

True when the source belongs to the execution connection family.

C#
public bool IsInput { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:54

True when the drag began on an input port.

C#
public System.Guid NodeId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:48

Durable identity of the node that owns the source port.

C#
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)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.ConnectionDropRequest

Source 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.

C#
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.

C#
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.

C#
public System.Guid FromNodeId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:37

The node that owns the pin the drag started from.

C#
public string FromPortId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionDropRequest.cs:40

The id of the source pin the drag started from.

C#
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)”
C#
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.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.ConnectionRequest

Source 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.

C#
public System.Guid FromNodeId { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:19

Source node identity.

C#
public string FromPortId { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:22

Source output-port identity.

C#
public bool IsExecutionEdge { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:31

True when the request belongs to the execution connection family.

C#
public System.Guid ToNodeId { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:25

Destination node identity.

C#
public string ToPortId { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionRequest.cs:28

Destination input-port identity.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.ConnectionVerdict

Source 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.

C#
public bool IsCompatible { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:62

True when the connection may be made.

C#
public string Reason { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:65

The host’s rejection reason; empty for compatible verdicts.

C#
public static BitQuirky.Graph.GraphView.ConnectionVerdict Compatible()

Source declaration: ../bitquirky-graph/Editor/GraphView/ConnectionVerdict.cs:74-77

Creates the compatible verdict.

C#
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.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.DefaultNodeRenderer

Source 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.

Render(NodeDefinition node, NodeView nodeView)

Section titled “Render(NodeDefinition node, NodeView nodeView)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.EdgeEndpointDetached

Source 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.

C#
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).

C#
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).

C#
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.

C#
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).

C#
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)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.EdgeEndpointDragHover

Source 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).

C#
public System.Guid EdgeId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeEndpointDetached.cs:78

The edge whose endpoint is being dragged.

C#
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.

C#
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)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.EdgeRewired

Source 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.

C#
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).

C#
public bool IsExecutionEdge { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:66

True for an execution wire, false for a data wire.

C#
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.

C#
public System.Guid NewNodeId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:60

The node the moved endpoint was dropped on.

C#
public string NewPortId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/EdgeRewired.cs:63

The port the moved endpoint was dropped on.

C#
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).

C#
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)”
C#
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.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphConnectionGhostStyle

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:28-35

Underlying type: int

Stroke pattern for the temporary wire shown during a connection drag.

C#
Dashed = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:34

Draw the temporary connection as alternating visible dashes and gaps.

C#
Solid = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:31

Draw the temporary connection using the established continuous stroke.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphEdgeInteractionState

Source 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.

C#
Hovered = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:123

The pointer is over the edge.

C#
None = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:121

No interaction state: the edge draws at rest.

C#
Selected = 2

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:125

The edge is part of the current selection, which outranks hover.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphEdgeRouting

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:15-23

Underlying type: int

The shape wires take between two ports.

C#
Bezier = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:18

Curved wires that leave each port along its facing direction.

C#
Orthogonal = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:20

Axis-aligned wires with right-angle corners.

C#
Straight = 2

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:22

A direct line from port to port.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.GraphFontPair

Source 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-loadedFontDefinitionvalues (or viaFromFonts for legacy Font).

Remarks

Round Trip: ship a per-projectGraphFontPairif a different family is preferred; otherwise reuse the graph-library defaults loaded from Runtime/Fonts/.

C#
public UnityEngine.UIElements.FontDefinition Mono { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphFontPair.cs:42

Monospace font used for identifiers and values.

C#
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)”
C#
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.

C#
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.

C#
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.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphNodePresentation

Source 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.

C#
CodeFlow = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:96

Cards with a header, body, and labeled pin rows.

C#
Tree = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:98

Compact top-down cards sized for dense hierarchies.

Category: Low-level runtime

C#
struct BitQuirky.Graph.GraphView.GraphNodeStyle

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:228-246

The resolved colors and corner radius for one node card, as worked out by ResolveNode.

C#
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.

C#
public UnityEngine.Color BodyColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:235

Fill of the card’s body.

C#
public UnityEngine.Color BorderDarkColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:241

Color of the card’s shaded border edge.

C#
public UnityEngine.Color BorderLightColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:239

Color of the card’s lit border edge.

C#
public float CornerRadius { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:245

Corner radius in pixels for this card.

C#
public UnityEngine.Color HeaderColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:233

Fill of the card’s header band.

C#
public UnityEngine.Color IconBackgroundColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:243

Fill of the plate behind a card icon.

C#
public UnityEngine.Color LabelColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:237

Text color chosen to read against the base color.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphPortGlyphStyle

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:40-47

Underlying type: int

Fill treatment for an individual port glyph.

C#
Filled = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:43

Fill the port glyph with its resolved port color.

C#
Hollow = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:46

Outline the port glyph with its resolved port color and leave its center clear.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphPortPlacement

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:52-58

Underlying type: int

Which sides of a node its input and output ports sit on.

C#
LeftRight = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:55

Inputs on the left edge, outputs on the right, for left-to-right reading.

C#
TopBottom = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:57

Inputs on the top edge, outputs on the bottom, for top-down reading.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphScrollWheelBehavior

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:104-110

Underlying type: int

What an unmodified wheel or trackpad scroll does on the canvas.

C#
PanWithControlZoom = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:109

Scrolling pans the canvas; holding Control zooms instead.

C#
Zoom = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:107

Scrolling changes zoom around the pointer.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.GraphTheme

Source 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 ofBitQuirkyDark continue 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.

C#
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.

C#
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.

C#
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.

C#
public UnityEngine.Color CanvasBackground { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:53

The canvas fill behind the grid.

C#
public UnityEngine.Color DataEdge { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:61

The color of data wires.

C#
public UnityEngine.UIElements.StyleSheet EffectsStyleSheet { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:103

SeeTokensStyleSheet.

C#
public UnityEngine.Color ExecutionEdge { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:59

The color of flow wires.

C#
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.

C#
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.

C#
public UnityEngine.Color GridLine { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:55

The grid line color.

C#
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).

C#
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.

C#
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.

C#
public float NodeCornerRadius { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:64

Corner radius in pixels of a node card.

C#
public UnityEngine.Color Selection { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:57

The color marking selected chrome.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public UnityEngine.UIElements.StyleSheet TypographyStyleSheet { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphTheme.cs:98

SeeTokensStyleSheet.

C#
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.

C#
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.

C#
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)”
C#
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.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.GraphViewHost

Source 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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public bool IsPanZoomLocked { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:2369

Current lock state forSetPanZoomLocked.

C#
public float MaxZoom { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:488

The closest the reader may zoom in, taken from the options.

C#
public float MinZoom { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:486

The furthest the reader may zoom out, taken from the options.

C#
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.

C#
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).

C#
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.

C#
public float Zoom { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:484

The current zoom factor, or 1 when no model is mounted.

C#
public event System.Action<UnityEngine.UIElements.ContextualMenuPopulateEvent> OnCanvasContextMenuRequested

Source 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.

C#
public event System.Action<System.Guid> OnCommentGlyphActivated

Source 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).

C#
public event System.Action<System.Guid, UnityEngine.Vector2> OnCommentPopupResized

Source 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.

C#
public event System.Action<System.Guid, string, System.Collections.Generic.IReadOnlyList<string>> OnCompositeLiteralCommitted

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.ConnectionDragSource> OnConnectionDragEnded

Source 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.

C#
public event System.Action<bool, BitQuirky.Graph.GraphView.ConnectionCandidate> OnConnectionDragHover

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.ConnectionDragSource> OnConnectionDragStarted

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.ConnectionDropRequest> OnConnectionDroppedOnCanvas

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.ConnectionCandidate, BitQuirky.Graph.GraphView.ConnectionVerdict> OnConnectionRejected

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.ConnectionRequest> OnEdgeCreated

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.EdgeEndpointDetached> OnEdgeEndpointDetached

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.EdgeEndpointDragHover> OnEdgeEndpointDragHover

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.EdgeRewired> OnEdgeRewired

Source 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.

C#
public event System.Action OnEdgesRendered

Source 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.

C#
public event System.Action<System.Guid> OnGuardShieldClicked

Source 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).

C#
public event System.Action<System.Guid, string, string> OnInlineLiteralCommitted

Source 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).

C#
public event System.Action<System.Guid, string, string> OnInlineReferenceCommitted

Source 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.

C#
public event System.Action<System.Guid> OnNodeContextMenuGoToSource

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:148

Raised when the user selects “Go to Source” from the node context menu.

C#
public event System.Action<System.Guid, UnityEngine.UIElements.ContextualMenuPopulateEvent> OnNodeContextMenuRequested

Source 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.

C#
public event System.Action<System.Guid> OnNodeDoubleClicked

Source 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.

C#
public event System.Action<System.Guid, System.Guid?> OnNodeDragHover

Source 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.

C#
public event System.Action<BitQuirky.Graph.GraphView.NodeDropOnNode> OnNodeDroppedOnNode

Source 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.

C#
public event System.Action<System.Collections.Generic.IReadOnlyList<(System.Guid Id, UnityEngine.Vector2 Position)>> OnNodeMoved

Source 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.

C#
public event System.Action<System.Guid, string> OnObjectReferenceClearRequested

Source 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.

C#
public event System.Action<System.Guid, string> OnObjectReferenceComboClicked

Source 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.

C#
public event System.Action<System.Guid, string, System.Collections.Generic.IReadOnlyList<UnityEngine.Object>> OnObjectReferenceDropped

Source 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.

C#
public event System.Action<System.Guid, string> OnObjectReferenceLocateRequested

Source 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.

C#
public event System.Action<System.Guid, string> OnPortBreakAllLinks

Source 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).

C#
public event System.Action<System.Guid, string, System.Guid, string> OnPortBreakLinkTo

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:218

Feature round-trip 067 (US2): raised when the user invokes “Break link to ” on a pin carrying more than one wire. Carries the owning node id and pin id, then the counterpart node id and port id, so the host can locate and remove that single wire.

C#
public event System.Action<BitQuirky.Graph.NodeDefinition, BitQuirky.Graph.PortDefinition> OnPortClicked

Source 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.

C#
public event System.Action<string, string> OnRecombineRequested

Source 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").

C#
public event System.Action<System.Collections.Generic.IReadOnlyCollection<System.Guid>> OnSelectionChanged

Source 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.

C#
public event System.Action<string, string> OnShowInstanceAsPill

Source 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.

C#
public event System.Action<string, string> OnShowInstanceAsWire

Source 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.

C#
public event System.Action<string> OnSplitRequested

Source 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.

C#
public event System.Action<UnityEngine.Vector2, float> OnViewportChanged

Source 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)”
C#
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.

C#
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)”
C#
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)”
C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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)”
C#
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.

C#
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).

C#
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)”
C#
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)”
C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public void HideMarquee()

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3253-3257

Hides the selection box. Does nothing when marquee selection is disabled.

C#
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.

C#
public bool IsSelected(System.Guid nodeId)

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:3207-3210

Whether the node is currently selected.

C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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.

C#
public void PanBy(UnityEngine.Vector2 viewDelta)

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:777-783

Shifts the viewport by viewDelta in view pixels.

C#
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.

C#
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.

C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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)”
C#
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.

C#
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.

C#
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)”
C#
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.

C#
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.

C#
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.

C#
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: source is 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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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)”
C#
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.

C#
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)”
C#
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)”
C#
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.

C#
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.

C#
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.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.GraphViewOptions

Source 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.

C#
public UnityEngine.Color AccentColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:288

Overrides the palette’s accent color.

C#
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.

C#
public UnityEngine.Color BackgroundColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:290

The canvas fill drawn behind the grid.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public UnityEngine.Color DataEdgeColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:310

The color of data wires.

C#
public static UnityEngine.Color DefaultAccentColor { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:241-242

The Bit Quirky accent color.

C#
public static UnityEngine.Color DefaultBackgroundColor { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:245-246

The canvas fill behind the grid.

C#
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.

C#
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.

C#
public static UnityEngine.Color DefaultEdgeIdleColor { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:265-266

The color of an edge at rest.

C#
public static UnityEngine.Color DefaultGridColor { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:249-250

The grid line color.

C#
public static UnityEngine.Color DefaultGridDotColor { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:261-262

The color of grid dots.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public float EdgeActiveStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:320

Stroke width of an edge the host has marked active.

C#
public UnityEngine.Color EdgeDisabledColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:326

The color of a disabled edge.

C#
public float EdgeDisabledOpacity { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:330

Opacity of a disabled edge, from 0 to 1.

C#
public float EdgeDisabledStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:328

Stroke width of a disabled edge.

C#
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.

C#
public float EdgeFailureStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:324

Stroke width of an edge the host has marked failed.

C#
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.

C#
public float EdgeHoveredStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:337

Stroke width of a hovered edge.

C#
public UnityEngine.Color EdgeIdleColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:312

The color of an edge at rest.

C#
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).

C#
public float EdgeIdleStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:314

Stroke width of an edge at rest.

C#
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.

C#
public UnityEngine.Color EdgeSelectedColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:339

The color of a selected edge.

C#
public float EdgeSelectedStrokeWidth { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:341

Stroke width of a selected edge.

C#
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.

C#
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.

C#
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.

C#
public bool EnableMarqueeSelection { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:571

Whether dragging on empty canvas draws a selection box.

C#
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.

C#
public bool EnableSelection { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:569

Whether clicking a node selects it.

C#
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.

C#
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.

C#
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.

C#
public UnityEngine.Color GridColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:292

The color of the grid lines.

C#
public UnityEngine.Color GridDotColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:507

The color of grid dots.

C#
public float GridDotRadius { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:509

Radius in graph units of a grid dot.

C#
public float GridSpacing { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:501

Distance in graph units between adjacent grid lines.

C#
public bool InvertZoomDirection { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:552

Whether scrolling up zooms out instead of in.

C#
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.

C#
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.

C#
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.

C#
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).

C#
public float MaxZoom { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:535

Closest the reader may zoom in, as a scale factor.

C#
public float MinZoom { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:533

Farthest the reader may zoom out, as a scale factor.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public UnityEngine.Color PortHoverColor { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:297

The color of a port under the pointer.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public float ScrollPanMultiplier { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:550

Multiplier converting one scroll delta unit into panned pixels.

C#
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.

C#
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.

C#
public bool ShowGrid { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:499

Whether the grid is drawn behind the graph.

C#
public bool ShowGridDots { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:505

Whether dots are drawn at grid intersections.

C#
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.

C#
public bool ShowPortLabels { get; set; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:478

Whether port labels are drawn next to their pins.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
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.

C#
public const byte DefaultAccentColorB = 67

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:158

Blue channel of DefaultAccentColor.

C#
public const byte DefaultAccentColorG = 58

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:156

Green channel of DefaultAccentColor.

C#
public const byte DefaultAccentColorR = 18

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:154

Red channel of DefaultAccentColor.

C#
public const byte DefaultBackgroundColorComponent = 38

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:160

The value used for all three channels of the neutral DefaultBackgroundColor.

C#
public const float DefaultDragThreshold = 4

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:214

Default distance in pixels the pointer must travel before a press becomes a drag.

C#
public const byte DefaultEdgeActiveColorB = 219

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:188

Blue channel of DefaultEdgeActiveColor.

C#
public const byte DefaultEdgeActiveColorG = 139

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:186

Green channel of DefaultEdgeActiveColor.

C#
public const byte DefaultEdgeActiveColorR = 79

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:184

Red channel of DefaultEdgeActiveColor.

C#
public const float DefaultEdgeActiveStrokeWidth = 1.75

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:222

Default stroke width of an edge the host has marked active.

C#
public const float DefaultEdgeDisabledOpacity = 0.3

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:228

Default opacity of a disabled edge, from 0 to 1.

C#
public const float DefaultEdgeDisabledStrokeWidth = 1.25

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:226

Default stroke width of a disabled edge.

C#
public const byte DefaultEdgeFailureColorB = 79

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:194

Blue channel of DefaultEdgeFailureColor.

C#
public const byte DefaultEdgeFailureColorG = 85

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:192

Green channel of DefaultEdgeFailureColor.

C#
public const byte DefaultEdgeFailureColorR = 216

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:190

Red channel of DefaultEdgeFailureColor.

C#
public const float DefaultEdgeFailureStrokeWidth = 1.5

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:224

Default stroke width of an edge the host has marked failed.

C#
public const float DefaultEdgeHoveredStrokeWidth = 3

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:230

Default stroke width of a hovered edge.

C#
public const byte DefaultEdgeIdleColorB = 176

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:182

Blue channel of DefaultEdgeIdleColor.

C#
public const byte DefaultEdgeIdleColorG = 168

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:180

Green channel of DefaultEdgeIdleColor.

C#
public const byte DefaultEdgeIdleColorR = 168

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:178

Red channel of DefaultEdgeIdleColor.

C#
public const float DefaultEdgeIdleOpacity = 0.55

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:220

Default opacity of an edge at rest, from 0 to 1.

C#
public const float DefaultEdgeIdleStrokeWidth = 1.25

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:218

Default stroke width of an edge at rest.

C#
public const float DefaultEdgeSelectedStrokeWidth = 4

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:232

Default stroke width of a selected edge.

C#
public const float DefaultExecutionEdgePickTolerance = 6

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:234

Default pointer distance in pixels within which a click still picks an execution edge.

C#
public const byte DefaultGridColorComponent = 64

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:162

The value used for all three channels of the neutral DefaultGridColor.

C#
public const byte DefaultGridDotColorB = 28

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:176

Blue channel of DefaultGridDotColor.

C#
public const byte DefaultGridDotColorG = 26

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:174

Green channel of DefaultGridDotColor.

C#
public const byte DefaultGridDotColorR = 26

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:172

Red channel of DefaultGridDotColor.

C#
public const float DefaultGridDotRadius = 0.85

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:202

Default radius in graph units of a grid dot.

C#
public const float DefaultGridSpacing = 20

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:198

Default distance in graph units between adjacent grid lines.

C#
public const int DefaultMajorLineFrequency = 5

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:200

Default number of minor grid steps between major lines.

C#
public const float DefaultMaxZoom = 2

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:206

Default closest the canvas may be zoomed in, as a scale factor.

C#
public const float DefaultMinZoom = 0.25

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:204

Default closest the canvas may be zoomed out, as a scale factor.

C#
public const byte DefaultOpaqueAlpha = 255

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:196

The alpha channel shared by every fully opaque default color.

C#
public const float DefaultPortColorComponent = 0.6

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:164

The value used for all three channels of the neutral DefaultPortColor, in normalized 0-1 form.

C#
public const byte DefaultPortInvalidColorB = 79

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:170

Blue channel of DefaultPortInvalidColor.

C#
public const byte DefaultPortInvalidColorG = 83

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:168

Green channel of DefaultPortInvalidColor.

C#
public const byte DefaultPortInvalidColorR = 217

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:166

Red channel of DefaultPortInvalidColor.

C#
public const byte DefaultPrimaryColorB = 219

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:152

Blue channel of DefaultPrimaryColor.

C#
public const byte DefaultPrimaryColorG = 209

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:150

Green channel of DefaultPrimaryColor.

C#
public const byte DefaultPrimaryColorR = 53

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:148

Red channel of DefaultPrimaryColor.

C#
public const float DefaultScrollPanMultiplier = 16

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:216

Default multiplier converting one scroll delta unit into panned pixels.

C#
public const float DefaultZoomSensitivity = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:212

Default multiplier applied to a wheel notch before it changes zoom.

C#
public const float DefaultZoomSnapTolerance = 0.02

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:210

Default distance from DefaultZoomSnapValue within which zoom snaps to it.

C#
public const float DefaultZoomSnapValue = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:208

Default zoom level that nearby zoom values snap to, so 100% is easy to land on.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.GraphViewportFitAlignment

Source 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.

C#
Center = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:22

Center the content bounds in both axes.

C#
TopCenter = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewHost.cs:24

Center the content horizontally and align its top edge with the top of the viewport.

Category: Low-level runtime

C#
interface BitQuirky.Graph.GraphView.IGraphLayoutStrategy

Source 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.

C#
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.

Category: Low-level runtime

C#
interface BitQuirky.Graph.GraphView.INodeRenderer

Source 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.

Render(NodeDefinition node, NodeView nodeView)

Section titled “Render(NodeDefinition node, NodeView nodeView)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.LiteralValidationResult

Source 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, ).

C#
public bool IsValid { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphViewOptions.cs:81

True when the typed text may be committed for this port.

C#
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.

C#
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)”
C#
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.

Category: Low-level runtime

C#
readonly struct BitQuirky.Graph.GraphView.NodeDropOnNode

Source 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.

C#
public System.Guid DraggedNodeId { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:31

The node the user dragged.

C#
public UnityEngine.Vector2 ReleasePosition { get; }

Source declaration: ../bitquirky-graph/Editor/GraphView/NodeDropOnNode.cs:37

The release point in graph space.

C#
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)”
C#
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.

Category: Low-level runtime

C#
enum BitQuirky.Graph.GraphView.TreeLayoutOrientation

Source 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.

C#
Horizontal = 1

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:40

Root at the left, growing rightwards.

C#
Vertical = 0

Source declaration: ../bitquirky-graph/Editor/GraphView/GraphLayoutStrategy.cs:38

Root at the top, growing downwards.

Category: Low-level runtime

C#
class BitQuirky.Graph.GraphView.TreeLayoutStrategy

Source 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.

C#
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)”
C#
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.

C#
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

Full-size image