graph_displayer_canvas-edge.cc
changeset 157 7e6ad28aeb9e
parent 147 10ef59f6633c
child 167 30a7be486475
     1.1 --- a/graph_displayer_canvas-edge.cc	Thu Sep 28 14:32:40 2006 +0000
     1.2 +++ b/graph_displayer_canvas-edge.cc	Mon Oct 02 18:52:00 2006 +0000
     1.3 @@ -1,6 +1,7 @@
     1.4  #include "graph_displayer_canvas.h"
     1.5  #include <cmath>
     1.6  
     1.7 +const int minimum_edge_width=2;
     1.8  
     1.9  int GraphDisplayerCanvas::resetEdgeWidth (Edge edge)
    1.10  {
    1.11 @@ -24,6 +25,11 @@
    1.12  	    {
    1.13  	      w=(int)(MIN_EDGE_WIDTH+(v-min)/(max-min)*(MAX_EDGE_WIDTH-MIN_EDGE_WIDTH));
    1.14  	    }
    1.15 +	  if(zoomtrack)
    1.16 +	    {
    1.17 +	      double actual_ppu=get_pixels_per_unit();
    1.18 +	      w=(int)(w/actual_ppu*fixed_zoom_factor);
    1.19 +	    }
    1.20  	  edgesmap[i]->setLineWidth(w);
    1.21  	}
    1.22      }
    1.23 @@ -54,13 +60,29 @@
    1.24  	{
    1.25  	  double v=fabs((*actual_map)[i]);
    1.26  	  int w;
    1.27 -	  if(min==max)
    1.28 +	  if(autoscale)
    1.29  	    {
    1.30 -	      w=(int)(edge_property_defaults[E_WIDTH]);
    1.31 +	      if(min==max)
    1.32 +		{
    1.33 +		  w=(int)(edge_property_defaults[E_WIDTH]);
    1.34 +		}
    1.35 +	      else
    1.36 +		{
    1.37 +		  w=(int)(minimum_edge_width+(v-min)/(max-min)*(edge_width-minimum_edge_width));
    1.38 +		}
    1.39  	    }
    1.40  	  else
    1.41  	    {
    1.42 -	      w=(int)(MIN_EDGE_WIDTH+(v-min)/(max-min)*(MAX_EDGE_WIDTH-MIN_EDGE_WIDTH));
    1.43 +	      w=(int)(v*edge_width);
    1.44 +	    }
    1.45 +	  if(w<minimum_edge_width)
    1.46 +	    {
    1.47 +	      w=minimum_edge_width;
    1.48 +	    }
    1.49 +	  if(zoomtrack)
    1.50 +	    {
    1.51 +	      double actual_ppu=get_pixels_per_unit();
    1.52 +	      w=(int)(w/actual_ppu*fixed_zoom_factor);
    1.53  	    }
    1.54  	  edgesmap[i]->setLineWidth(w);
    1.55  	}