1.1 --- a/kruskalbox.cc Wed May 02 20:33:58 2007 +0000
1.2 +++ b/kruskalbox.cc Wed Jan 02 21:03:09 2008 +0000
1.3 @@ -33,51 +33,50 @@
1.4 void KruskalBox::run()
1.5 {
1.6 if(
1.7 - tabcbt.get_active_text()!="" &&
1.8 - (edgemapcbts[INPUT])->get_active_text()!="" &&
1.9 - (edgemapcbts[OUTPUT])->get_active_text()!=""
1.10 - )
1.11 + tabcbt.get_active_text()!="" &&
1.12 + (edgemapcbts[INPUT])->get_active_text()!="" &&
1.13 + (edgemapcbts[OUTPUT])->get_active_text()!=""
1.14 + )
1.15 + {
1.16 +
1.17 + const Graph &g=mapstorage->getGraph();
1.18 + std::string input_map_name = edgemapcbts[INPUT]->get_active_text();
1.19 + Graph::EdgeMap<bool> outputmap(g);
1.20 + const MapStorage::NumericEdgeMap& inputmap=
1.21 + mapstorage->getNumericEdgeMap(input_map_name);
1.22 + double res=kruskal(g, inputmap, outputmap);
1.23 +
1.24 + for (EdgeIt i(g); i!=INVALID; ++i)
1.25 {
1.26 + if(outputmap[i])
1.27 + {
1.28 + mapstorage->set(edgemapcbts[OUTPUT]->get_active_text(), i, 1.0);
1.29 + }
1.30 + else
1.31 + {
1.32 + mapstorage->set(edgemapcbts[OUTPUT]->get_active_text(), i, 0.0);
1.33 + }
1.34 + }
1.35
1.36 - const Graph &g=mapstorage->graph;
1.37 - Graph::EdgeMap<double> * inputmap=
1.38 - ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
1.39 - Graph::EdgeMap<bool> outputmap(g);
1.40 - double res=kruskal(g, *inputmap, outputmap);
1.41 + std::ostringstream o;
1.42 + o << "Result: " << res;
1.43 + resultlabel.set_text(o.str());
1.44
1.45 - for (EdgeIt i(g); i!=INVALID; ++i)
1.46 - {
1.47 - if(outputmap[i])
1.48 - {
1.49 - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.50 - get_active_text()]))[i]=1;
1.51 - }
1.52 - else
1.53 - {
1.54 - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.55 - get_active_text()]))[i]=0;
1.56 - }
1.57 - }
1.58 + mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
1.59 + // mapstorage->changeActiveMap(true, E_COLOR,
1.60 + // (edgemapcbts[OUTPUT])->get_active_text());
1.61 + // mapstorage->changeActiveMap(true, E_TEXT,
1.62 + // (edgemapcbts[INPUT])->get_active_text());
1.63
1.64 - std::ostringstream o;
1.65 - o << "Result: " << res;
1.66 - resultlabel.set_text(o.str());
1.67 -
1.68 - mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
1.69 - // mapstorage->changeActiveMap(true, E_COLOR,
1.70 - // (edgemapcbts[OUTPUT])->get_active_text());
1.71 - // mapstorage->changeActiveMap(true, E_TEXT,
1.72 - // (edgemapcbts[INPUT])->get_active_text());
1.73 -
1.74 - }
1.75 + }
1.76 }
1.77
1.78 void KruskalBox::build_box()
1.79 {
1.80 std::vector<std::string> empty_vector;
1.81
1.82 - addMapSelector("Edgecosts: ", true);
1.83 - addMapSelector("Edges of tree here: ", true);
1.84 + addMapSelector("Edgecosts: ", true, NUM);
1.85 + addMapSelector("Edges of tree here: ", true, NUM);
1.86
1.87 resultlabel.set_text("Result: algorithm is not run yet.");
1.88 pack_start(resultlabel);