COIN-OR::LEMON - Graph Library

source: lemon-0.x/gui/kruskalbox.cc @ 2052:c54ce7a5f4e7

Last change on this file since 2052:c54ce7a5f4e7 was 1886:8b225c2935e7, checked in by Hegyi Péter, 18 years ago

Creation of algorithm dialog is even simpler by the usage of the newly created addMapSelector function.

File size: 1.5 KB
Line 
1#include <kruskalbox.h>
2
3enum {INPUT, OUTPUT, MAP_NUM};
4
5KruskalBox::KruskalBox(std::vector<std::string> t):AlgoBox()
6{
7  init(t);
8}
9   
10void KruskalBox::run()
11{
12  if(
13     tabcbt.get_active_text()!="" &&
14     (edgemapcbts[INPUT])->get_active_text()!="" &&
15     (edgemapcbts[OUTPUT])->get_active_text()!=""
16     )
17    {
18
19      Graph g=mapstorage->graph;
20      Graph::EdgeMap<double> * inputmap=
21        ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
22      Graph::EdgeMap<bool> outputmap(g);
23      double res=kruskal(g, *inputmap, outputmap);
24
25      for (EdgeIt i(g); i!=INVALID; ++i)
26        {
27          if(outputmap[i])
28            {
29              (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
30                                               get_active_text()]))[i]=1;
31            }
32          else
33            {
34              (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
35                                               get_active_text()]))[i]=0;
36            }
37        }
38
39      std::ostringstream o;
40      o << "Result: " << res;
41      resultlabel.set_text(o.str());
42
43      mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
44      //   mapstorage->changeActiveMap(true, E_COLOR,
45      //                              (edgemapcbts[OUTPUT])->get_active_text());
46      //   mapstorage->changeActiveMap(true, E_TEXT,
47      //                              (edgemapcbts[INPUT])->get_active_text());
48 
49    }
50}
51   
52void KruskalBox::build_box()
53{
54  std::vector<std::string> empty_vector;
55
56  addMapSelector("Edgecosts: ", true);
57  addMapSelector("Edges of tree here: ", true);
58
59  resultlabel.set_text("Result: algorithm is not run yet.");
60  pack_start(resultlabel);
61}
Note: See TracBrowser for help on using the repository browser.