| 160 | } |
| 161 | |
| 162 | private dfsRankOrder(visited: Array<boolean>, node: GraphNode): void { |
| 163 | if (visited[node.id]) return; |
| 164 | visited[node.id] = true; |
| 165 | for (const outputEdge of node.outputs) { |
| 166 | if (outputEdge.isVisible()) { |
| 167 | const output = outputEdge.target; |
| 168 | this.dfsRankOrder(visited, output); |
| 169 | } |
| 170 | } |
| 171 | if (node.visitOrderWithinRank == 0) { |
| 172 | node.visitOrderWithinRank = ++this.visitOrderWithinRank; |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | private getRankSets(showTypes: boolean): Array<Array<GraphNode>> { |
| 177 | const rankSets = new Array<Array<GraphNode>>(); |