followEdges method

void followEdges(
  1. Graph graph,
  2. NodeCluster cluster,
  3. Node node,
  4. List nodesVisited,
)

Implementation

void followEdges(Graph graph, NodeCluster cluster, Node node, List nodesVisited) {
  graph.successorsOf(node).forEach((successor) {
    if (!nodesVisited.contains(successor)) {
      nodesVisited.add(successor);
      cluster.add(successor);

      followEdges(graph, cluster, successor, nodesVisited);
    }
  });

  graph.predecessorsOf(node).forEach((predecessor) {
    if (!nodesVisited.contains(predecessor)) {
      nodesVisited.add(predecessor);
      cluster.add(predecessor);

      followEdges(graph, cluster, predecessor, nodesVisited);
    }
  });
}