COIN-OR::LEMON - Graph Library

source: lemon-0.x/gui/kruskalbox.cc @ 1975:64db671eda28

Last change on this file since 1975:64db671eda28 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
RevLine 
[1876]1#include <kruskalbox.h>
2
[1879]3enum {INPUT, OUTPUT, MAP_NUM};
4
[1878]5KruskalBox::KruskalBox(std::vector<std::string> t):AlgoBox()
[1876]6{
[1878]7  init(t);
[1876]8}
9   
10void KruskalBox::run()
11{
[1884]12  if(
13     tabcbt.get_active_text()!="" &&
14     (edgemapcbts[INPUT])->get_active_text()!="" &&
15     (edgemapcbts[OUTPUT])->get_active_text()!=""
16     )
17    {
[1879]18
[1884]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);
[1879]24
[1884]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        }
[1881]38
[1884]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());
[1880]48 
[1884]49    }
[1876]50}
51   
52void KruskalBox::build_box()
53{
[1884]54  std::vector<std::string> empty_vector;
55
[1886]56  addMapSelector("Edgecosts: ", true);
57  addMapSelector("Edges of tree here: ", true);
[1879]58
59  resultlabel.set_text("Result: algorithm is not run yet.");
60  pack_start(resultlabel);
[1876]61}
Note: See TracBrowser for help on using the repository browser.