8 } |
8 } |
9 |
9 |
10 void KruskalBox::run() |
10 void KruskalBox::run() |
11 { |
11 { |
12 Graph g=mapstorage->graph; |
12 Graph g=mapstorage->graph; |
13 Graph::EdgeMap<double> * inputmap=((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]); |
13 Graph::EdgeMap<double> * inputmap= |
|
14 ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]); |
14 Graph::EdgeMap<bool> outputmap(g); |
15 Graph::EdgeMap<bool> outputmap(g); |
15 double res=kruskal(g, *inputmap, outputmap); |
16 double res=kruskal(g, *inputmap, outputmap); |
16 |
17 |
17 for (EdgeIt i(g); i!=INVALID; ++i) |
18 for (EdgeIt i(g); i!=INVALID; ++i) |
18 { |
19 { |
19 if(outputmap[i]) |
20 if(outputmap[i]) |
20 { |
21 { |
21 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->get_active_text()]))[i]=1; |
22 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> |
|
23 get_active_text()]))[i]=1; |
22 } |
24 } |
23 else |
25 else |
24 { |
26 { |
25 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->get_active_text()]))[i]=0; |
27 (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> |
|
28 get_active_text()]))[i]=0; |
26 } |
29 } |
27 } |
30 } |
28 |
31 |
29 std::ostringstream o; |
32 std::ostringstream o; |
30 o << "Result: " << res; |
33 o << "Result: " << res; |
31 resultlabel.set_text(o.str()); |
34 resultlabel.set_text(o.str()); |
32 |
35 |
33 mapstorage->changeActiveMap(true, E_COLOR, (edgemapcbts[OUTPUT])->get_active_text()); |
36 mapstorage->changeActiveMap(true, E_COLOR, |
34 mapstorage->changeActiveMap(true, E_TEXT, (edgemapcbts[INPUT])->get_active_text()); |
37 (edgemapcbts[OUTPUT])->get_active_text()); |
|
38 mapstorage->changeActiveMap(true, E_TEXT, |
|
39 (edgemapcbts[INPUT])->get_active_text()); |
35 } |
40 } |
36 |
41 |
37 void KruskalBox::build_box() |
42 void KruskalBox::build_box() |
38 { |
43 { |
39 edgemapcbts.resize(MAP_NUM); |
44 edgemapcbts.resize(MAP_NUM); |