hegyi@1512: #include hegyi@1512: #include hegyi@1512: #include hegyi@1512: hegyi@1512: hegyi@1512: int GraphDisplayerCanvas::changeNodeRadius (std::string mapname, Graph::Node node) hegyi@1512: { hegyi@1512: if(node==INVALID) hegyi@1512: { hegyi@1512: for (NodeIt i(g); i!=INVALID; ++i) hegyi@1512: { hegyi@1512: int w=(int)(*(mapstorage.nodemap_storage)[mapname])[i]; hegyi@1512: if(w>=0) hegyi@1512: { hegyi@1512: double x1, y1, x2, y2; hegyi@1512: nodesmap[i]->get_bounds(x1, y1, x2, y2); hegyi@1512: nodesmap[i]->property_x1().set_value((x1+x2)/2-w); hegyi@1512: nodesmap[i]->property_x2().set_value((x1+x2)/2+w); hegyi@1512: nodesmap[i]->property_y1().set_value((y1+y2)/2-w); hegyi@1512: nodesmap[i]->property_y2().set_value((y1+y2)/2+w); hegyi@1512: } hegyi@1512: } hegyi@1512: } hegyi@1512: else hegyi@1512: { hegyi@1512: int w=(int)(*(mapstorage.nodemap_storage)[mapname])[node]; hegyi@1512: if(w>=0) hegyi@1512: { hegyi@1512: double x1, y1, x2, y2; hegyi@1512: nodesmap[node]->get_bounds(x1, y1, x2, y2); hegyi@1512: nodesmap[node]->property_x1().set_value((x1+x2)/2-w); hegyi@1512: nodesmap[node]->property_x2().set_value((x1+x2)/2+w); hegyi@1512: nodesmap[node]->property_y1().set_value((y1+y2)/2-w); hegyi@1512: nodesmap[node]->property_y2().set_value((y1+y2)/2+w); hegyi@1512: } hegyi@1512: } hegyi@1512: return 0; hegyi@1512: }; hegyi@1512: hegyi@1512: int GraphDisplayerCanvas::changeNodeColor (std::string mapname, Graph::Node node) hegyi@1512: { hegyi@1512: hegyi@1512: //function maps the range of the maximum and hegyi@1512: //the minimum of the nodemap to the range of hegyi@1512: //green in RGB hegyi@1512: hegyi@1512: if(node==INVALID) hegyi@1512: { hegyi@1512: hegyi@1512: for (NodeIt i(g); i!=INVALID; ++i) hegyi@1512: { hegyi@1512: double w=(*(mapstorage.nodemap_storage)[mapname])[i]; hegyi@1512: double max=mapstorage.maxOfNodeMap(mapname); hegyi@1512: double min=mapstorage.minOfNodeMap(mapname); hegyi@1512: hegyi@1512: //std::cout<property_fill_color_gdk().set_value(color); hegyi@1512: } hegyi@1512: } hegyi@1512: else hegyi@1512: { hegyi@1512: double w=(*(mapstorage.nodemap_storage)[mapname])[node]; hegyi@1512: double max=mapstorage.maxOfNodeMap(mapname); hegyi@1512: double min=mapstorage.minOfNodeMap(mapname); hegyi@1512: hegyi@1512: //std::cout<property_fill_color_gdk().set_value(color); hegyi@1512: } hegyi@1512: return 0; hegyi@1512: }; hegyi@1512: hegyi@1512: int GraphDisplayerCanvas::changeNodeText (std::string mapname, Graph::Node node) hegyi@1512: { hegyi@1512: hegyi@1512: //the number in the map will be written on the node hegyi@1512: //EXCEPT when the name of the map is Text, because hegyi@1512: //in that case empty string will be written, because hegyi@1512: //that is the deleter map hegyi@1512: //\todo isn't it a bit woodcutter? hegyi@1512: hegyi@1512: if(node==INVALID) hegyi@1512: { hegyi@1512: for (NodeIt i(g); i!=INVALID; ++i) hegyi@1512: { hegyi@1512: if(mapname!=node_property_strings[N_TEXT]) hegyi@1512: { hegyi@1512: double number=(*(mapstorage.nodemap_storage)[mapname])[i]; hegyi@1512: int length=1; hegyi@1512: //if number is smaller than one, length would be negative, or invalid hegyi@1512: if(number>=1) hegyi@1512: { hegyi@1512: length=(int)(floor(log(number)/log(10)))+1; hegyi@1512: } hegyi@1512: int maxpos=(int)(pow(10,length-1)); hegyi@1512: int strl=length+1+RANGE; hegyi@1512: char * str=new char[strl]; hegyi@1512: str[length]='.'; hegyi@1512: str[strl]='\0'; hegyi@1512: hegyi@1512: for(int j=0;jproperty_text().set_value(str); hegyi@1512: } hegyi@1512: else hegyi@1512: { hegyi@1512: nodetextmap[i]->property_text().set_value(""); hegyi@1512: } hegyi@1512: } hegyi@1512: } hegyi@1512: else hegyi@1512: { hegyi@1512: if(mapname!=node_property_strings[N_TEXT]) hegyi@1512: { hegyi@1512: double number=(*(mapstorage.nodemap_storage)[mapname])[node]; hegyi@1512: int length=1; hegyi@1512: //if number is smaller than one, length would be negative, or invalid hegyi@1512: if(number>=1) hegyi@1512: { hegyi@1512: length=(int)(floor(log(number)/log(10)))+1; hegyi@1512: } hegyi@1512: int maxpos=(int)(pow(10,length-1)); hegyi@1512: int strl=length+1+RANGE; hegyi@1512: char * str=new char[strl]; hegyi@1512: str[length]='.'; hegyi@1512: str[strl]='\0'; hegyi@1512: hegyi@1512: for(int j=0;jproperty_text().set_value(str); hegyi@1512: } hegyi@1512: else hegyi@1512: { hegyi@1512: nodetextmap[node]->property_text().set_value(""); hegyi@1512: } hegyi@1512: } hegyi@1512: return 0; hegyi@1512: };