code: public List<int[]> allNodes(final int r) {
      final List<int[]> result = new ArrayList<>();
      if (r < 2)
        return result;
      mark(r);
      for (int n = 0; n < this.nodesize; n++) {
        if ((level(n) & MARKON) != 0) {
          final BddNode node = this.nodes[n];
          node.level &= MARKOFF;
          result.add(new int[]{n, this.level2var[node.level], node.low, node.high});
        }
      }
      return result;
    }
docs: Returns all nodes for a given root node in their internal representation.  The internal representation is stored
  in an array: {@code [node number, variable, low, high]}
  @param r the BDD root node
  @return all Nodes in their internal representation