We have the same Subgraph
node in both procedural and dataflow context - one might be wondering (from DiOS perspective) instead of having two distinct node types, we could just differentiate them by graph context?
It might appear that we could just drop in an "if" when such nodes are picked from the functions tray to instantiate different node types based on graph context. There are a few reasons why we still want to separate them:
- Procedural context still allows dataflow nodes, in which case graph context on its own is not;
- By making procedural context an "archetype" in this sense complicates node graph interpretation because the same node can now mean different things.
- Having distinct node classes adds small complexity to node editor but otherwise makes DiOS compliant editors an option to completely ignore certain nodes instead of requiring implementing a proper procedural context,
So, in summary:
- Procedural context is a (conceptual) child of dataflow context rather than a separate archetype.
- It's necessary to keep nodes distinct and implement a proper procedural version of those corresponding dataflow nodes.
- Graph context is just a metadata (to the graph editor) and not a graph archetype (to the node graph itself or the runtime).