[Lemon-commits] alpar: r3066 - glemon/trunk

Lemon SVN svn at lemon.cs.elte.hu
Tue Nov 7 22:27:30 CET 2006


Author: alpar
Date: Tue Nov  7 22:27:28 2006
New Revision: 3066

Modified:
   glemon/trunk/graph_displayer_canvas.cc

Log:
Bugfix + polishing

Modified: glemon/trunk/graph_displayer_canvas.cc
==============================================================================
--- glemon/trunk/graph_displayer_canvas.cc	(original)
+++ glemon/trunk/graph_displayer_canvas.cc	Tue Nov  7 22:27:28 2006
@@ -320,8 +320,6 @@
       actual_forces.setXMap(x);
       actual_forces.setYMap(y);
 
-      lemon::dim2::Point<double> delta;
-
       //count actual force for each nodes
       for (NodeIt i((mytab.mapstorage).graph); i!=INVALID; ++i)
 	{
@@ -330,17 +328,14 @@
 	    {
 	      if(i!=j)
 		{
-		  delta=((mytab.mapstorage).coords[i]-(mytab.mapstorage).coords[j]);
+		  lemon::dim2::Point<double> delta =
+		    ((mytab.mapstorage).coords[i]-
+		     (mytab.mapstorage).coords[j]);
 
-		  double length_sqr=delta.normSquare();
-		  double length=sqrt(length_sqr);
-		  if(length_sqr<min_dist)
-		    {
-		      length_sqr=min_dist;
-		    }
+		  const double length_sqr=std::max(delta.normSquare(),min_dist);
 
 		  //normalize vector
-		  delta/=length;
+		  delta/=sqrt(length_sqr);
 
 		  //calculating propulsation strength
 		  //greater distance menas smaller propulsation strength
@@ -352,43 +347,29 @@
 	  //attraction of nodes, to which actual node is bound
 	  for(OutEdgeIt ei((mytab.mapstorage).graph,i);ei!=INVALID;++ei)
 	    {
-	      delta=((mytab.mapstorage).coords[i]-(mytab.mapstorage).coords[mytab.mapstorage.graph.target(ei)]);
-
-	      double length_sqr=delta.normSquare();
-	      double length=sqrt(length_sqr);
-	      if(length_sqr<min_dist)
-		{
-		  length_sqr=min_dist;
-		}
-
-	      //normalize vector
-	      delta/=length;
-
-	      //calculating attraction strength
-	      //greater distance means greater strength
-	      delta*=attraction*length;
-
-	      actual_forces.set(i,actual_forces[i]-delta);
+	      lemon::dim2::Point<double> delta =
+		((mytab.mapstorage).coords[i]-
+		 (mytab.mapstorage).coords[mytab.mapstorage.
+					   graph.target(ei)]);
+		
+		//calculating attraction strength
+		//greater distance means greater strength
+		delta*=attraction;
+		
+		actual_forces.set(i,actual_forces[i]-delta);
 	    }
 	  for(InEdgeIt ei((mytab.mapstorage).graph,i);ei!=INVALID;++ei)
 	    {
-	      delta=((mytab.mapstorage).coords[i]-(mytab.mapstorage).coords[mytab.mapstorage.graph.source(ei)]);
-
-	      double length_sqr=delta.normSquare();
-	      double length=sqrt(length_sqr);
-	      if(length_sqr<min_dist)
-		{
-		  length_sqr=min_dist;
-		}
-
-	      //normalize vector
-	      delta/=length;
-
-	      //calculating attraction strength
-	      //greater distance means greater strength
-	      delta*=attraction*length;
-
-	      actual_forces.set(i,actual_forces[i]-delta);
+	      lemon::dim2::Point<double> delta =
+		((mytab.mapstorage).coords[i]-
+		 (mytab.mapstorage).coords[mytab.mapstorage.
+					   graph.source(ei)]);
+		
+		//calculating attraction strength
+		//greater distance means greater strength
+		delta*=attraction;
+		
+		actual_forces.set(i,actual_forces[i]-delta);
 	    }
 	}
       for (NodeIt i((mytab.mapstorage).graph); i!=INVALID; ++i)



More information about the Lemon-commits mailing list