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
}