58 lines
1.3 KiB
C#
58 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using Unity.Mathematics;
|
|
|
|
public interface INucleus {
|
|
|
|
#region static struct
|
|
|
|
// Cluster
|
|
public ClusterPrefab cluster { get; }
|
|
public Cluster parent { get; }
|
|
|
|
// Senders
|
|
public List<Synapse> synapses { get; }
|
|
public Synapse AddSynapse(INucleus sender, float weight = 1.0f);
|
|
|
|
public NucleusArray array { get; set; }
|
|
|
|
#endregion static struct
|
|
|
|
#region dynamic state
|
|
|
|
// public void UpdateState();
|
|
// public void UpdateState(float3 inputValue);
|
|
public void UpdateStateIsolated();
|
|
public void UpdateStateIsolated(float3 inputValue);
|
|
|
|
#endregion dynamic state
|
|
|
|
#region static
|
|
|
|
public string name { get; set; }
|
|
|
|
// Receivers
|
|
public List<INucleus> receivers { get; set; }
|
|
|
|
public void AddReceiver(INucleus receiver, float weight = 1);
|
|
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
|
|
|
|
public INucleus ShallowCloneTo(Cluster parent);
|
|
public INucleus Clone();
|
|
}
|
|
|
|
// public interface IReceptor {
|
|
// }
|
|
|