code: def generate_layout(bpmn_graph):
      
      classification = generate_elements_clasification(bpmn_graph)
      (sorted_nodes_with_classification, backward_flows) = topological_sort(bpmn_graph, classification[0])
      grid = grid_layout(bpmn_graph, sorted_nodes_with_classification)
      set_coordinates_for_nodes(bpmn_graph, grid)
      set_flows_waypoints(bpmn_graph)
docs: :param bpmn_graph: an instance of BPMNDiagramGraph class.