private void UndoSynapse() { if (synapseUndoInfo.Count == 0) { return; } SynapseUndo s = synapseUndoInfo.Last(); synapseUndoInfo.RemoveAt(synapseUndoInfo.Count - 1); Neuron n = GetNeuron(s.source); if (s.newSynapse) //the synapse was added so delete it { n.DeleteSynapse(s.target); } else if (s.delSynapse) //the synapse was deleted so add it back { n.AddSynapse(s.target, s.weight, s.model); } else //weight/type changed { n.AddSynapse(s.target, s.weight, s.model); } n.Update(); }
public void AddSynapseUndo(int source, int target, float weight, Synapse.modelType model, bool newSynapse, bool delSynapse) { SynapseUndo s; s = new SynapseUndo { source = source, target = target, weight = weight, model = model, newSynapse = newSynapse, delSynapse = delSynapse, }; synapseUndoInfo.Add(s); }