SharpNeat.Network.NetworkDefinition.GetConnectivityData C# (CSharp) Method

GetConnectivityData() public method

Gets NetworkConnectivityData for the network.
public GetConnectivityData ( ) : NetworkConnectivityData
return NetworkConnectivityData
        public NetworkConnectivityData GetConnectivityData()
        {
            if(null != _networkConnectivityData) {
                return _networkConnectivityData;
            }

            int nodeCount = _nodeList.Count;
            NodeConnectivityData[] nodeConnectivityDataArr = new NodeConnectivityData[nodeCount];
            Dictionary<uint,NodeConnectivityData> nodeConnectivityDataById = new Dictionary<uint,NodeConnectivityData>(nodeCount);

            // Instantiate NodeConnectivityData for each node.
            for(int i=0; i<nodeCount; i++)
            {
                uint nodeId = _nodeList[i].Id;
                NodeConnectivityData ncd = new NodeConnectivityData(nodeId);
                nodeConnectivityDataArr[i] = ncd;
                nodeConnectivityDataById.Add(nodeId, ncd);
            }

            // Loop connections and register them with the source and target nodes.
            int conCount = _connectionList.Count;
            for(int i=0; i<conCount; i++)
            {
                INetworkConnection conn = _connectionList[i];
                NodeConnectivityData srcNodeData = nodeConnectivityDataById[conn.SourceNodeId];
                NodeConnectivityData tgtNodeData = nodeConnectivityDataById[conn.TargetNodeId];
                srcNodeData._tgtNodes.Add(conn.TargetNodeId);
                tgtNodeData._srcNodes.Add(conn.SourceNodeId);
            }

            _networkConnectivityData = new NetworkConnectivityData(nodeConnectivityDataArr, nodeConnectivityDataById);
            return _networkConnectivityData;
        }