57 lines
1.3 KiB
C#
57 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using Unity.Mathematics;
|
|
|
|
public interface INucleus : IReceptor {
|
|
|
|
#region static struct
|
|
|
|
// Cluster
|
|
public Cluster cluster { get; }
|
|
|
|
// Senders
|
|
public List<Synapse> synapses { get; }
|
|
public Synapse AddSynapse(IReceptor sender, string nucleusName = null);
|
|
// public Synapse AddClusterSynapse(Cluster clusterSender);
|
|
|
|
public NucleusArray array { get; set; }
|
|
|
|
#endregion static struct
|
|
|
|
#region dynamic state
|
|
|
|
public void UpdateState();
|
|
|
|
|
|
#endregion dynamic state
|
|
|
|
public INucleus Clone();
|
|
}
|
|
|
|
public interface IReceptor {
|
|
#region static
|
|
|
|
public string name { get; set; }
|
|
|
|
// Receivers
|
|
public List<INucleus> receivers { get; set; }
|
|
// public List<Cluster> clusterReceivers { get; set; }
|
|
// public IEnumerable<INucleus> allReceivers { get; }
|
|
|
|
public void AddReceiver(INucleus receiver);
|
|
// public void AddClusterReceiver(Cluster clusterReceiver);
|
|
public void RemoveReceiver(INucleus receiverNucleus);
|
|
|
|
#endregion static
|
|
|
|
#region dynamic
|
|
|
|
// float3 to prepare for SIMD
|
|
public float3 outputValue { get; }
|
|
|
|
public void UpdateNuclei();
|
|
public bool isSleeping { get; }
|
|
|
|
#endregion dynamic
|
|
}
|
|
|