graph_displayer_canvas-edge.cc
branchgui
changeset 31 66e85f44a66f
parent 28 fa28f1071bd6
child 35 79bffdf6aea2
     1.1 --- a/graph_displayer_canvas-edge.cc	Wed Jun 29 15:41:33 2005 +0000
     1.2 +++ b/graph_displayer_canvas-edge.cc	Wed Jun 29 19:44:30 2005 +0000
     1.3 @@ -5,11 +5,21 @@
     1.4  
     1.5  int GraphDisplayerCanvas::changeEdgeWidth (std::string mapname, Graph::Edge edge)
     1.6  {
     1.7 +  Graph::EdgeMap<double> * actual_map;
     1.8 +  if(mapname=="Default")
     1.9 +    {
    1.10 +      actual_map=new Graph::EdgeMap<double>(g,edge_property_defaults[E_WIDTH]);
    1.11 +    }
    1.12 +  else
    1.13 +    {
    1.14 +      actual_map=(mapstorage.edgemap_storage)[mapname];
    1.15 +    }
    1.16 +
    1.17    if(edge==INVALID)
    1.18      {
    1.19        for (EdgeIt i(g); i!=INVALID; ++i)
    1.20  	{
    1.21 -	  int w=(int)(*(mapstorage.edgemap_storage)[mapname])[i];
    1.22 +	  int w=(int)(*actual_map)[i];
    1.23  	  if(w>=0)
    1.24  	    {
    1.25  	      edgesmap[i]->property_width_pixels().set_value(w);
    1.26 @@ -18,7 +28,7 @@
    1.27      }
    1.28    else
    1.29      {
    1.30 -      int w=(int)(*(mapstorage.edgemap_storage)[mapname])[edge];
    1.31 +      int w=(int)(*actual_map)[edge];
    1.32        if(w>=0)
    1.33  	{
    1.34  	  edgesmap[edge]->property_width_pixels().set_value(w);
    1.35 @@ -33,16 +43,35 @@
    1.36    //function maps the range of the maximum and
    1.37    //the minimum of the nodemap to the range of
    1.38    //green in RGB
    1.39 +  Graph::EdgeMap<double> * actual_map;
    1.40 +  if(mapname=="Default")
    1.41 +    {
    1.42 +      actual_map=new Graph::EdgeMap<double>(g,edge_property_defaults[E_COLOR]);
    1.43 +    }
    1.44 +  else
    1.45 +    {
    1.46 +      actual_map=(mapstorage.edgemap_storage)[mapname];
    1.47 +    }
    1.48 +
    1.49 +  double max, min;
    1.50 +
    1.51 +  if(mapname!="Default")
    1.52 +    {
    1.53 +      max=mapstorage.maxOfEdgeMap(mapname);
    1.54 +      min=mapstorage.minOfEdgeMap(mapname);
    1.55 +    }
    1.56 +  else
    1.57 +    {
    1.58 +      max=edge_property_defaults[E_COLOR];
    1.59 +      min=edge_property_defaults[E_COLOR];
    1.60 +    }
    1.61 +
    1.62    if(edge==INVALID)
    1.63      {
    1.64 -
    1.65        for (EdgeIt i(g); i!=INVALID; ++i)
    1.66  	{
    1.67 -	  double w=(*(mapstorage.edgemap_storage)[mapname])[i];
    1.68 -	  double max=mapstorage.maxOfEdgeMap(mapname);
    1.69 -	  double min=mapstorage.minOfEdgeMap(mapname);
    1.70 -      
    1.71 -	  //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
    1.72 +	  double w=(*actual_map)[i];
    1.73 +
    1.74  	  Gdk::Color color;
    1.75  	  if(max!=min)
    1.76  	    {
    1.77 @@ -52,18 +81,15 @@
    1.78  	    {
    1.79  	      color.set_rgb_p (0, 100, 0);
    1.80  	    }
    1.81 -
    1.82  	  edgesmap[i]->property_fill_color_gdk().set_value(color);
    1.83  	}
    1.84      }
    1.85    else
    1.86      {
    1.87 -      double w=(*(mapstorage.edgemap_storage)[mapname])[edge];
    1.88 -      double max=mapstorage.maxOfEdgeMap(mapname);
    1.89 -      double min=mapstorage.minOfEdgeMap(mapname);
    1.90 -      
    1.91 -      //std::cout<<w<<" "<<max<<" "<<min<<" "<<100*(w-min)/(max-min)<<std::endl;
    1.92        Gdk::Color color;
    1.93 +
    1.94 +      double w=(*actual_map)[edge];
    1.95 +
    1.96        if(max!=min)
    1.97  	{
    1.98  	  color.set_rgb_p (0, 100*(w-min)/(max-min), 0);
    1.99 @@ -85,13 +111,12 @@
   1.100    //EXCEPT when the name of the map is Text, because
   1.101    //in that case empty string will be written, because
   1.102    //that is the deleter map
   1.103 -  //\todo isn't it a bit woodcutter?
   1.104  
   1.105    if(edge==INVALID)
   1.106      {
   1.107        for (EdgeIt i(g); i!=INVALID; ++i)
   1.108  	{
   1.109 -	  if(mapname!=edge_property_strings[E_TEXT])
   1.110 +	  if(mapname!="Default")
   1.111  	    {
   1.112  	      double number=(*(mapstorage.edgemap_storage)[mapname])[i];
   1.113  	      int length=1;
   1.114 @@ -128,7 +153,7 @@
   1.115      }
   1.116    else
   1.117      {
   1.118 -      if(mapname!=edge_property_strings[E_TEXT])
   1.119 +      if(mapname!="Default")
   1.120  	{
   1.121  	  double number=(*(mapstorage.edgemap_storage)[mapname])[edge];
   1.122  	  int length=1;