-void dot_print(int nb_vertices,
- int nb_edges, int *ea, int *eb, scalar_t *el,
- int source, int sink,
- int *edge_occupation) {
- cout << "digraph {" << endl;
- cout << " node[shape=circle];" << endl;
- for(int e = 0; e < nb_edges; e++) {
- if(edge_occupation[e]) {
- cout << " " << ea[e] << " -> " << eb[e] << " [style=bold,color=black,label=\"" << el[e] << "\"];" << endl;
- } else {
- cout << " " << ea[e] << " -> " << eb[e] << " [color=gray,label=\"" << el[e] << "\"];" << endl;
+void MTPGraph::retrieve_disjoint_paths() {
+ Edge *e;
+
+ for(int p = 0; p < nb_paths; p++) delete paths[p];
+ delete[] paths;
+
+ nb_paths = 0;
+ for(e = _source->leaving_edges; e; e = e->next_leaving_edge) {
+ if(e->occupied) { nb_paths++; }
+ }
+
+ paths = new Path *[nb_paths];
+
+ int p = 0;
+ for(e = _source->leaving_edges; e; e = e->next_leaving_edge) {
+ if(e->occupied) {
+ int l = retrieve_one_path(e, 0);
+ paths[p] = new Path(l);
+ retrieve_one_path(e, paths[p]->nodes);
+ p++;