[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