COIN-OR::LEMON - Graph Library

Changeset 109:9f8dc346ac6e in glemon-0.x for kruskalbox.cc


Ignore:
Timestamp:
01/05/06 17:54:34 (14 years ago)
Author:
Hegyi Péter
Branch:
gui
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2454
Message:

Kruskal algorithm can be run from GUI from now on.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kruskalbox.cc

    r108 r109  
    11#include <kruskalbox.h>
     2
     3enum {INPUT, OUTPUT, MAP_NUM};
    24
    35KruskalBox::KruskalBox(std::vector<std::string> t):AlgoBox()
     
    810void KruskalBox::run()
    911{
    10  
    11   std::cout << "Kruskal inditasa, de meg nincsen keszen." << std::endl;
     12  Graph g=mapstorage->graph;
     13  Graph::EdgeMap<double> * inputmap=((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
     14  Graph::EdgeMap<bool> outputmap(g);
     15  double res=kruskal(g, *inputmap, outputmap);
     16
     17  for (EdgeIt i(g); i!=INVALID; ++i)
     18  {
     19    if(outputmap[i])
     20      {
     21        (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->get_active_text()]))[i]=1;
     22      }
     23    else
     24      {
     25        (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->get_active_text()]))[i]=0;
     26      }
     27  }
     28
     29  std::ostringstream o;
     30  o << "Result: " << res;
     31  resultlabel.set_text(o.str());
     32
     33  mapstorage->changeActiveMap(true, E_COLOR, (edgemapcbts[OUTPUT])->get_active_text());
     34  mapstorage->changeActiveMap(true, E_TEXT, (edgemapcbts[INPUT])->get_active_text());
    1235}
    1336   
    1437void KruskalBox::build_box()
    1538{
    16   edgemapcbts.resize(1);
    17   Gtk::HBox * hbox=new Gtk::HBox();
     39  edgemapcbts.resize(MAP_NUM);
     40  Gtk::HBox * hbox;
    1841
    19   std::ostringstream o;
    20   o << "Edgecosts: ";
    21   label=new Gtk::Label(o.str());
     42  hbox=new Gtk::HBox();
     43
     44  label=new Gtk::Label("Edgecosts: ");
    2245
    2346  edgemapcbts[0]=new Gtk::ComboBoxText();
    2447
    2548  hbox->pack_start(*label);
    26   hbox->pack_start(*(edgemapcbts[0]));
     49  hbox->pack_start(*(edgemapcbts[INPUT]));
    2750  pack_start(*hbox);
     51
     52  hbox=new Gtk::HBox();
     53
     54  label=new Gtk::Label("Edges of tree here: ");
     55
     56  edgemapcbts[1]=new Gtk::ComboBoxText();
     57
     58  hbox->pack_start(*label);
     59  hbox->pack_start(*(edgemapcbts[OUTPUT]));
     60  pack_start(*hbox);
     61
     62  resultlabel.set_text("Result: algorithm is not run yet.");
     63  pack_start(resultlabel);
    2864}
Note: See TracChangeset for help on using the changeset viewer.