draw external receivers only once
This commit is contained in:
parent
ffcf420715
commit
36f876c0d8
@ -327,7 +327,7 @@ namespace NanoBrain {
|
|||||||
if (nucleus is Neuron neuron)
|
if (nucleus is Neuron neuron)
|
||||||
receivers = neuron.receivers;
|
receivers = neuron.receivers;
|
||||||
else if (nucleus is Cluster cluster)
|
else if (nucleus is Cluster cluster)
|
||||||
receivers = cluster.CollectReceivers();
|
receivers = cluster.CollectReceivers(true);
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -357,7 +357,6 @@ namespace NanoBrain {
|
|||||||
float margin = 10 + spacing / 2;
|
float margin = 10 + spacing / 2;
|
||||||
|
|
||||||
int row = 0;
|
int row = 0;
|
||||||
List<Nucleus[]> drawnArrays = new();
|
|
||||||
foreach (Nucleus receiver in receivers) {
|
foreach (Nucleus receiver in receivers) {
|
||||||
Nucleus receiverNucleus = receiver;
|
Nucleus receiverNucleus = receiver;
|
||||||
if (receiverNucleus == null)
|
if (receiverNucleus == null)
|
||||||
@ -733,7 +732,7 @@ namespace NanoBrain {
|
|||||||
if (nucleus == this.currentNucleus) {
|
if (nucleus == this.currentNucleus) {
|
||||||
if (Application.isPlaying) {
|
if (Application.isPlaying) {
|
||||||
if (nucleus is Cluster)
|
if (nucleus is Cluster)
|
||||||
expandArray = !expandArray;
|
expandArray = !expandArray;
|
||||||
else
|
else
|
||||||
expandArray = false;
|
expandArray = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -716,7 +716,7 @@ namespace NanoBrain {
|
|||||||
|
|
||||||
#region Receivers
|
#region Receivers
|
||||||
|
|
||||||
public virtual List<Nucleus> CollectReceivers() {
|
public virtual List<Nucleus> CollectReceivers(bool removeDuplicates = false) {
|
||||||
List<Nucleus> receivers = new();
|
List<Nucleus> receivers = new();
|
||||||
foreach (Nucleus outputNucleus in this.clusterNuclei) {
|
foreach (Nucleus outputNucleus in this.clusterNuclei) {
|
||||||
if (outputNucleus is not Neuron output)
|
if (outputNucleus is not Neuron output)
|
||||||
@ -725,10 +725,11 @@ namespace NanoBrain {
|
|||||||
// Debug.Log($"output {this.name} {outputNucleus.name}");
|
// Debug.Log($"output {this.name} {outputNucleus.name}");
|
||||||
foreach (Nucleus receiver in output.receivers) {
|
foreach (Nucleus receiver in output.receivers) {
|
||||||
// Debug.Log($"output {receiver.name}");
|
// Debug.Log($"output {receiver.name}");
|
||||||
// Only add receivers outside this cluster
|
// Only add receivers outside this cluster
|
||||||
if (receiver.clusterPrefab != this.prefab) {
|
if (receiver.clusterPrefab != this.prefab) {
|
||||||
// Debug.Log($" YES");
|
if (removeDuplicates && receivers.Contains(receiver) == false)
|
||||||
receivers.Add(receiver);
|
// Debug.Log($" YES");
|
||||||
|
receivers.Add(receiver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user