SocketInitData[] CreateSockets() { SortNeuronsByIO(neurons); SocketInitData[] sockets = new SocketInitData[neurons.Count]; //Debug.Log($"sockets: {sockets.Length}, input: {inputNeurons.Count}, output: {outputNeurons.Count}, " + // $"hidden: {hiddenNeurons.Count}, total: {inputNeurons.Count + outputNeurons.Count + hiddenNeurons.Count}"); // Place input and output neurons before hidden neurons // because hidden neurons are between connected input and output neurons. /*int offset = 0; * for (int i = 0; i < inputNeurons.Count; i++) * sockets[i + offset].position = placement.GetNeuronPosition(inputNeurons[i]); * * offset = inputNeurons.Count; * for (int i = 0; i < outputNeurons.Count; i++) * sockets[i + offset].position = placement.GetNeuronPosition(outputNeurons[i]); * * offset = inputNeurons.Count + outputNeurons.Count; * for (int i = 0; i < hiddenNeurons.Count; i++) { * sockets[i + offset].position = placement.GetHiddenNeuronPosition(hiddenNeurons[i]); * //Debug.Log("HID " + sockets[i + offset].position); * }*/ // WPP: delegated branching to placement to simplify interface // + placement calculated during neuron creation for (int i = 0; i < sockets.Length; i++) { sockets[i].position = neurons[i].data.iconPosition; } return(sockets); }
SocketInitData[] CreateSockets(List <Neuron> neurons) { SocketInitData[] sockets = new SocketInitData[neuronCount]; for (int i = 0; i < neuronCount; i++) { var list = neurons[i].io == NeuronType.In ? inputNeurons : outputNeurons; list.Add(neurons[i]); } AssignNeuralPositions(ref sockets, inputNeurons.Count, 0, inputZ); AssignNeuralPositions(ref sockets, outputNeurons.Count, inputNeurons.Count, outputZ); return(sockets); }