diff --git a/Editor/ClusterViewer.cs b/Editor/ClusterViewer.cs index 1ae3662..0940fc3 100644 --- a/Editor/ClusterViewer.cs +++ b/Editor/ClusterViewer.cs @@ -282,11 +282,16 @@ namespace NanoBrain { private void DescendGraph(Dag.Node receiver, ref int ix, Dag dag) { foreach (Synapse synapse in receiver.nucleus.synapses) { - Dag.Node synapseNode = dag.FindNode(synapse.neuron.name); + Nucleus nucleus = synapse.neuron; + if (nucleus.parent != null && nucleus.parent != currentNucleus.parent) { + nucleus = nucleus.parent; + } + string nucleusName = nucleus.name; + Dag.Node synapseNode = dag.FindNode(nucleusName); if (synapseNode == null) { synapseNode = new() { id = ix, - nucleus = synapse.neuron + nucleus = nucleus }; dag.nodes.Add(synapseNode); } @@ -744,9 +749,20 @@ namespace NanoBrain { public List nodes = new(); public List edges = new(); - public Node FindNode(string name) { + public Node FindNode(string name, bool justBaseName = true) { + if (justBaseName) { + int colonPos = name.IndexOf(":"); + if (colonPos > 0) + name = name[..colonPos]; + } foreach (Node node in this.nodes) { - if (node.nucleus.name == name) + string nodeName = node.nucleus.name; + if (justBaseName) { + int colonPos = nodeName.IndexOf(":"); + if (colonPos > 0) + nodeName = nodeName[..colonPos]; + } + if (nodeName == name) return node; } return null;