| | |
| | | /// <param name="network"></param> |
| | | /// <param name="startJunc"></param> |
| | | /// <returns></returns> |
| | | public static List<Link> AnalyzeUpstreamPath(this Network network, Junction startJunc, CalcuResult calcuResult) |
| | | public static List<Link> AnalyzeUpstreamPath(this Network network, Node startJunc, CalcuResult calcuResult) |
| | | { |
| | | var dictLinks = calcuResult.LinkList.ToDictionary(p => p.Id); |
| | | var dictNodes = calcuResult.NodeList.ToDictionary(p => p.Id); |
| | | var visitedNodes = new HashSet<Node>(); |
| | | var maxlink = startJunc.GetPrevLinks(calcuResult.LinkList).OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0]; |
| | | visitedNodes.Add(startJunc); |
| | | var prevLinks = startJunc.GetPrevLinks(calcuResult.LinkList); |
| | | if (prevLinks == null || prevLinks.Count <= 0) return prevLinks; |
| | | |
| | | var maxlink = prevLinks.OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0]; |
| | | return network.TraversePipeNetworkALL(maxlink, visitedNodes, -1, true, calcuResult); |
| | | } |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | } |
| | | if (direction <0) |
| | | { |
| | | _links主要路径.Reverse(); |
| | | } |
| | | return _links主要路径; |
| | | |
| | | |