public readonly record struct SubGraphExpansionOne sub-graph node, as it was expanded: the graph it stood for and what it was set to.
Remarks
⚠ The flattener throws the sub-graph node away, and this is what survives it. Inlining replaces the node with the graph's contents, so the numbers an author typed on it reached nothing at all — a knob that accepted a value, saved it, and changed no picture (#742). What is recorded is the table rather than an interpretation of it: which keys are parameters is a question only the graph's own compiler can answer.
⚠ Path is the middle of the walk, and only its two ends used to be recorded — #925. Source is the outermost node and Inner is an identity in the innermost file, so two sibling instances of one compound nested inside another share both, share Type, and are indistinguishable to anything downstream — two noise generators drawing one picture. Expansion does distinguish them and cannot be used for it: it is a walk-ordered counter, so an insertion moves it, which is #875 one level in.
Every element is stable within its own file, which is the property that makes this usable where the counter is not: each is a NodeId read out of the containing graph's document, and a document never renumbers or reuses one. So the chain moves only when an author moves the compound node it names.
Fields and properties (4)
public string TypeThe node-type path of the sub-graph that was expanded.
public NodeId SourceThe node in the author's own graph to blame for it — the outermost one, exactly as Source is, because that is the only node a canvas has.
public IReadOnlyDictionary<string, string> SettingsWhat the sub-graph node carried, by key: Texts, copied. A published graph's knobs are stored there under their own names, so this is the author's overrides — and it holds whatever else that table held, because the flattener does not know which keys a given kind of graph calls parameters.
public ImmutableArray<NodeId> PathEvery sub-graph node walked through to reach this expansion, outermost first and this expansion's own node last. One element for a sub-graph node in the author's graph, two for one nested inside it, and so on.
Methods (1)
Used by (4)
- FlattenerVixen.Editor.NodeGraph
- NodeGraphInliningVixen.Editor.NodeGraph
- SubGraphTestsVixen.Editor.NodeGraph.Tests
- TextureGraphCompilerVixen.Editor.TextureGraph