public static SimulationMatrix GetSimulationMatrix(LanesFromXmlOutput meanDataLanes) { var simulationMatrix = new SimulationMatrix(); foreach (var interval in meanDataLanes.Items) { //interval.edges } return simulationMatrix; }
/// <summary> /// Generuje pelny graf na podstawie danych wygenerowanych przez sumo do xml /// Dane z SUMO to output laneData. /// </summary> /// <param name="lanesFromXmlOutputData"></param> public void GenerateFcm(LanesFromXmlOutput lanesFromXmlOutputData) { _fcmNodes = new List<FCMNode>(); _fcmEdges = new List<FCMEdge>(); FCMNode tempFcmNode; var edgesFromFirstInterval = lanesFromXmlOutputData.Items.First().edges; int counter = 0; foreach (var edge in edgesFromFirstInterval) { foreach (var simpleLane in edge.lane) { tempFcmNode = new FCMNode(); tempFcmNode.Id = simpleLane.id; _fcmNodes.Add(tempFcmNode);//[counter++] = tempFcmNode; } } FCMNode toFcmNode; FCMNode fromFcmNode; FCMEdge fcmEdge; for (int fromIndex = 0; fromIndex < _fcmNodes.Count; fromIndex++) { fromFcmNode = _fcmNodes[fromIndex]; for (int toIndex = 0; toIndex < _fcmNodes.Count; toIndex++) { if(fromIndex == toIndex) continue; toFcmNode = _fcmNodes[toIndex]; fcmEdge = new FCMEdge(); fcmEdge.From = fromFcmNode; fcmEdge.To = toFcmNode; fcmEdge.Id = fromFcmNode.Id + "_" + toFcmNode.Id; fromFcmNode.OutEdges.Add(fcmEdge); toFcmNode.InEdges.Add(fcmEdge); _fcmEdges.Add(fcmEdge); } } }