Author: kono
Date: 2012-05-08 14:14:15 -0700 (Tue, 08 May 2012)
New Revision: 29158

Modified:
   
core3/impl/trunk/edge-bundler-impl/src/main/java/org/cytoscape/edge/bundler/internal/EdgeBundlerTask.java
Log:
Code cleanup only.  No functional change.

Modified: 
core3/impl/trunk/edge-bundler-impl/src/main/java/org/cytoscape/edge/bundler/internal/EdgeBundlerTask.java
===================================================================
--- 
core3/impl/trunk/edge-bundler-impl/src/main/java/org/cytoscape/edge/bundler/internal/EdgeBundlerTask.java
   2012-05-08 21:09:19 UTC (rev 29157)
+++ 
core3/impl/trunk/edge-bundler-impl/src/main/java/org/cytoscape/edge/bundler/internal/EdgeBundlerTask.java
   2012-05-08 21:14:15 UTC (rev 29158)
@@ -33,40 +33,39 @@
 
        private static final Logger logger = 
LoggerFactory.getLogger(EdgeBundlerTask.class);
 
-       @Tunable(description="Number of handles")
+       @Tunable(description = "Number of handles")
        public int numNubs = 3;
-               
-       @Tunable(description="Spring constant")
+
+       @Tunable(description = "Spring constant")
        public double K = 3e-3;
-       
-       @Tunable(description="Compatability threshold")
+
+       @Tunable(description = "Compatability threshold")
        public double COMPATABILITY_THRESHOLD = 0.3;
-       
-       @Tunable(description="Maximum iterations")
+
+       @Tunable(description = "Maximum iterations")
        public int maxIterations = 10000;
-       //private double networkScale;
-       
+
        private boolean animate = false;
-       
-       private double[][][] edgePos; //source/target, X/Y, edgeIndex
-       private double[][][] nubs;    //nubLocation, X/Y, edgeIndex
+
+       private double[][][] edgePos; // source/target, X/Y, edgeIndex
+       private double[][][] nubs; // nubLocation, X/Y, edgeIndex
        private double[][] edgeCompatability;
        private boolean[][] edgeAlign;
        private double[] edgeLength;
        private int[][] edgeMatcher;
-               
-       private HandleFactory hf;
-       private BendFactory bf;
-       private VisualMappingManager vmm;
-       private VisualMappingFunctionFactory discreteFactory;
-       
+
+       private final HandleFactory hf;
+       private final BendFactory bf;
+       private final VisualMappingManager vmm;
+       private final VisualMappingFunctionFactory discreteFactory;
+
        private int numEdges;
-       
        private int selection;
-       
-       EdgeBundlerTask(CyNetworkView v, HandleFactory hf, BendFactory bf, 
VisualMappingManager vmm, VisualMappingFunctionFactory discreteFactory, int 
selection) {
+
+       EdgeBundlerTask(CyNetworkView v, HandleFactory hf, BendFactory bf, 
VisualMappingManager vmm,
+                       VisualMappingFunctionFactory discreteFactory, int 
selection) {
                super(v);
-               
+
                this.hf = hf;
                this.bf = bf;
                this.vmm = vmm;
@@ -75,456 +74,447 @@
        }
 
        public void run(TaskMonitor tm) {
-               
-               
-               //Check tunables
-               if (numNubs<1) numNubs = 1;
-               if (numNubs>50)
-               {
+
+               // Check tunables
+               if (numNubs < 1)
+                       numNubs = 1;
+               if (numNubs > 50) {
                        logger.warn("Maximum handles is 50.");
                        numNubs = 50;
                }
-               
+
                tm.setTitle("Edge Bundle Layout");
-               
-               //Pre-cache data structures
+
+               // Pre-cache data structures
                tm.setStatusMessage("Caching network data");
                Collection<View<CyEdge>> edges = null;
-               
-               //Get selection
-               if (selection==0) //Use all edges
+
+               // Get selection
+               if (selection == 0) // Use all edges
                {
                        edges = this.view.getEdgeViews();
-               }
-               else if (selection==1) //Use selected nodes only
+               } else if (selection == 1) // Use selected nodes only
                {
                        Collection<View<CyEdge>> edgeView = 
this.view.getEdgeViews();
-                       
+
                        edges = new ArrayList<View<CyEdge>>(edgeView.size());
-                       
-                       for (View<CyEdge> e : edgeView)
-                       {
+
+                       for (View<CyEdge> e : edgeView) {
                                boolean n1 = 
view.getNodeView(e.getModel().getSource()).getVisualProperty(EDGE_SELECTED);
                                boolean n2 = 
view.getNodeView(e.getModel().getTarget()).getVisualProperty(EDGE_SELECTED);
-                               if (n1 && n2) edges.add(e);
+                               if (n1 && n2)
+                                       edges.add(e);
                        }
-                       
-               }else if (selection==2) //Use selected edges only
+
+               } else if (selection == 2) // Use selected edges only
                {
                        Collection<View<CyEdge>> edgeView = 
this.view.getEdgeViews();
-                       
+
                        edges = new ArrayList<View<CyEdge>>(edgeView.size());
-                       
+
                        for (View<CyEdge> e : edgeView)
-                               if (e.getVisualProperty(EDGE_SELECTED)) 
edges.add(e);
+                               if (e.getVisualProperty(EDGE_SELECTED))
+                                       edges.add(e);
                }
-               
+
                int ei = 0;
-               for (View<CyEdge> e : edges)
-               {
+               for (View<CyEdge> e : edges) {
                        View<CyNode> eSource = 
view.getNodeView(e.getModel().getSource());
                        View<CyNode> eTarget = 
view.getNodeView(e.getModel().getTarget());
-                       
-                       if (eSource.getSUID().equals(eTarget.getSUID())) 
continue;
-                       
+
+                       if (eSource.getSUID().equals(eTarget.getSUID()))
+                               continue;
+
                        ei++;
                }
-               
+
                numEdges = ei;
-               
-               if (numEdges<2)
-               {
+
+               if (numEdges < 2) {
                        logger.warn("Less than two edges found.");
                        return;
                }
-               
+
                edgePos = new double[2][2][numEdges];
-               nubs = new double[numNubs][2][numEdges];                
+               nubs = new double[numNubs][2][numEdges];
                edgeLength = new double[numEdges];
-               
+
                ei = 0;
-               for (View<CyEdge> e : edges)
-               {
-                       //System.out.println("SUID: "+e.getModel().getSUID());
-                       
+               for (View<CyEdge> e : edges) {
+                       // System.out.println("SUID: "+e.getModel().getSUID());
+
                        View<CyNode> eSource = 
view.getNodeView(e.getModel().getSource());
                        View<CyNode> eTarget = 
view.getNodeView(e.getModel().getTarget());
-                       
-                       if (eSource.getSUID().equals(eTarget.getSUID())) 
continue;
-                       
+
+                       if (eSource.getSUID().equals(eTarget.getSUID()))
+                               continue;
+
                        edgePos[0][0][ei] = 
eSource.getVisualProperty(NODE_X_LOCATION);
                        edgePos[0][1][ei] = 
eSource.getVisualProperty(NODE_Y_LOCATION);
                        edgePos[1][0][ei] = 
eTarget.getVisualProperty(NODE_X_LOCATION);
                        edgePos[1][1][ei] = 
eTarget.getVisualProperty(NODE_Y_LOCATION);
-                       
-                       //if (edgePos[0][0][ei]>edgePos[1][0][ei]) {double temp 
= edgePos[0][0][ei]; edgePos[0][0][ei] = edgePos[1][0][ei]; edgePos[1][0][ei] = 
temp;}
-                       //if (edgePos[0][1][ei]>edgePos[1][1][ei]) {double temp 
= edgePos[0][1][ei]; edgePos[0][1][ei] = edgePos[1][1][ei]; edgePos[1][1][ei] = 
temp;}
-                       
+
+                       // if (edgePos[0][0][ei]>edgePos[1][0][ei]) {double 
temp =
+                       // edgePos[0][0][ei]; edgePos[0][0][ei] = 
edgePos[1][0][ei];
+                       // edgePos[1][0][ei] = temp;}
+                       // if (edgePos[0][1][ei]>edgePos[1][1][ei]) {double 
temp =
+                       // edgePos[0][1][ei]; edgePos[0][1][ei] = 
edgePos[1][1][ei];
+                       // edgePos[1][1][ei] = temp;}
+
                        double diffx = edgePos[1][0][ei] - edgePos[0][0][ei];
                        double diffy = edgePos[1][1][ei] - edgePos[0][1][ei];
-                                               
-                       for (int ni=0;ni<numNubs;ni++)
-                       {
+
+                       for (int ni = 0; ni < numNubs; ni++) {
                                nubs[ni][0][ei] = (diffx) * (ni + 1) / (numNubs 
+ 1) + edgePos[0][0][ei];
                                nubs[ni][1][ei] = (diffy) * (ni + 1) / (numNubs 
+ 1) + edgePos[0][1][ei];
                        }
-                       
-                       edgeLength[ei] = Math.sqrt(diffx*diffx + diffy*diffy);
-                       
+
+                       edgeLength[ei] = Math.sqrt(diffx * diffx + diffy * 
diffy);
+
                        ei++;
                }
-               
-                               
-               //networkScale = computeNetworkScale();
+
+               // networkScale = computeNetworkScale();
                computeEdgeCompatability();
-               
-               //Simulating physics
+
+               // Simulating physics
                tm.setStatusMessage("Simulating physics");
                double time = System.nanoTime();
-               double[][][] forces = new double[numNubs][2][numEdges]; //Nub, 
X/Y, edgeIndex
-               for (int iteri=0;iteri<maxIterations;iteri++)
-               {
-                       if (this.cancelled)
-                       {
-                               //reset();
-                               logger.info("Edge bundling cancelled: 
iter="+iteri);
+               double[][][] forces = new double[numNubs][2][numEdges]; // Nub, 
X/Y,
+                                                                               
                                                // edgeIndex
+               for (int iteri = 0; iteri < maxIterations; iteri++) {
+                       if (this.cancelled) {
+                               // reset();
+                               logger.info("Edge bundling cancelled: iter=" + 
iteri);
                                break;
                        }
-                       
-                       tm.setProgress(iteri/Double.valueOf(maxIterations));
-                       
+
+                       tm.setProgress(iteri / Double.valueOf(maxIterations));
+
                        updateForces(forces);
                        updateNubs(forces);
-                       
-                       //Check convergence once in awhile
-                       if (iteri%1000==0 && isConverged(forces,.01))
-                       {
-                               logger.info("Edge bundling converged: 
iter="+iteri);
+
+                       // Check convergence once in awhile
+                       if (iteri % 1000 == 0 && isConverged(forces, .01)) {
+                               logger.info("Edge bundling converged: iter=" + 
iteri);
                                break;
                        }
-                       
-                       if (iteri==maxIterations-1)
-                       {
-                               logger.info("Edge bundling did not converge: 
iter="+iteri);
+
+                       if (iteri == maxIterations - 1) {
+                               logger.info("Edge bundling did not converge: 
iter=" + iteri);
                                break;
                        }
-                       
-                       if (animate && System.nanoTime()-time>3)
-                       {
+
+                       if (animate && System.nanoTime() - time > 3) {
                                render(edges);
                                time = System.nanoTime();
                        }
                }
-               
+
                render(edges);
-               
-               
-//             double minX = 0;
-//             double maxX = 0;
-//             double minY = 0;
-//             double maxY = 0;
-//             
-//             
-//             for (ei=0;ei<edgeLength.length;ei++)
-//                     for (int ni=0;ni<numNubs;ni++)
-//                     {
-//                             double x = nubs[ni][0][ei];
-//                             double y = nubs[ni][1][ei];
-//                             
-//                             if (x<minX) minX = x;
-//                             if (x>maxX) maxX = x;
-//                             if (y<minY) minY = y;
-//                             if (y>maxY) maxY = y;
-//                             
-//                             if (Double.isInfinite(x) || 
Double.isInfinite(y) || Double.isNaN(x) || Double.isNaN(y))
-//                                     System.out.println("Infinite or NaN 
positions detected!");
-//                     }
-//             
-//             System.out.println(minX+":"+maxX+",  "+minY+":"+maxY);
+
+               // double minX = 0;
+               // double maxX = 0;
+               // double minY = 0;
+               // double maxY = 0;
+               //
+               //
+               // for (ei=0;ei<edgeLength.length;ei++)
+               // for (int ni=0;ni<numNubs;ni++)
+               // {
+               // double x = nubs[ni][0][ei];
+               // double y = nubs[ni][1][ei];
+               //
+               // if (x<minX) minX = x;
+               // if (x>maxX) maxX = x;
+               // if (y<minY) minY = y;
+               // if (y>maxY) maxY = y;
+               //
+               // if (Double.isInfinite(x) || Double.isInfinite(y) || 
Double.isNaN(x)
+               // || Double.isNaN(y))
+               // System.out.println("Infinite or NaN positions detected!");
+               // }
+               //
+               // System.out.println(minX+":"+maxX+",  "+minY+":"+maxY);
        }
-       
-       private double computeNetworkScale()
-       {
+
+       private double computeNetworkScale() {
                double centerX = 0;
                double centerY = 0;
-               
-               for (int ei=0;ei<edgeLength.length;ei++)
-               {
+
+               for (int ei = 0; ei < edgeLength.length; ei++) {
                        centerX += edgePos[0][0][ei] + edgePos[1][0][ei];
                        centerY += edgePos[0][1][ei] + edgePos[1][1][ei];
                }
-               
-               centerX /= 2.0*edgeLength.length;
-               centerY /= 2.0*edgeLength.length;
-               
-               double[] dist = new double[2*edgeLength.length];
-                               
-               for (int ei=0;ei<edgeLength.length;ei++)
-               {
+
+               centerX /= 2.0 * edgeLength.length;
+               centerY /= 2.0 * edgeLength.length;
+
+               double[] dist = new double[2 * edgeLength.length];
+
+               for (int ei = 0; ei < edgeLength.length; ei++) {
                        double diff0x = edgePos[0][0][ei] - centerX;
                        double diff0y = edgePos[0][1][ei] - centerY;
                        double diff1x = edgePos[1][0][ei] - centerX;
                        double diff1y = edgePos[1][1][ei] - centerY;
-                       
-                       dist[2*ei] = Math.sqrt(diff0x*diff0x + diff0y*diff0y);
-                       dist[2*ei+1] = Math.sqrt(diff1x*diff1x + diff1y*diff1y);
+
+                       dist[2 * ei] = Math.sqrt(diff0x * diff0x + diff0y * 
diff0y);
+                       dist[2 * ei + 1] = Math.sqrt(diff1x * diff1x + diff1y * 
diff1y);
                }
-               
+
                Arrays.sort(dist);
-               double scale = dist[dist.length/2];
-               
+               double scale = dist[dist.length / 2];
+
                return scale;
        }
-       
-       private boolean isConverged(double[][][] forces, double threshold)
-       {
-               for (int ei=0;ei<edgeLength.length;ei++)
-                       for (int ni=0;ni<numNubs;ni++)
-                               if (Math.abs(forces[ni][0][ei])>threshold || 
Math.abs(forces[ni][1][ei])>threshold) 
-                               {
-                                       //System.out.println(forces[ni][0][ei] 
+ ", "+ forces[ni][1][ei]);
+
+       private boolean isConverged(double[][][] forces, double threshold) {
+               for (int ei = 0; ei < edgeLength.length; ei++)
+                       for (int ni = 0; ni < numNubs; ni++)
+                               if (Math.abs(forces[ni][0][ei]) > threshold || 
Math.abs(forces[ni][1][ei]) > threshold) {
+                                       // System.out.println(forces[ni][0][ei] 
+ ", "+
+                                       // forces[ni][1][ei]);
                                        return false;
                                }
-               
+
                return true;
        }
 
-       private void render(Collection<View<CyEdge>> edges)
-       {
-               DiscreteMapping<Long, Bend> function = 
(DiscreteMapping<Long,Bend>) 
discreteFactory.createVisualMappingFunction(CyTable.SUID, Long.class, null, 
EDGE_BEND);
-               
+       private void render(Collection<View<CyEdge>> edges) {
+               DiscreteMapping<Long, Bend> function = (DiscreteMapping<Long, 
Bend>) discreteFactory
+                               .createVisualMappingFunction(CyTable.SUID, 
Long.class, null, EDGE_BEND);
+
                int ei = 0;
-               for (View<CyEdge> e : edges)
-               {
+               for (View<CyEdge> e : edges) {
                        View<CyNode> eSource = 
view.getNodeView(e.getModel().getSource());
                        View<CyNode> eTarget = 
view.getNodeView(e.getModel().getTarget());
-                       
-                       if (eSource.getSUID().equals(eTarget.getSUID())) 
continue;
-                       
+
+                       if (eSource.getSUID().equals(eTarget.getSUID()))
+                               continue;
+
                        Bend b = bf.createBend();
                        List<Handle> hlist = b.getAllHandles();
-                       
-                       for (int ni=0;ni<numNubs;ni++)
-                       {
+
+                       for (int ni = 0; ni < numNubs; ni++) {
                                double x = nubs[ni][0][ei];
                                double y = nubs[ni][1][ei];
 
                                Handle h = hf.createHandle(0, 0);
-                               h.defineHandle(view,e, x, y);
+                               h.defineHandle(view, e, x, y);
                                hlist.add(h);
                        }
-                       
+
                        function.putMapValue(e.getModel().getSUID(), b);
                        ei++;
                }
-               
+
                vmm.getVisualStyle(view).addVisualMappingFunction(function);
-                                                               
+
                vmm.getVisualStyle(view).apply(view);
                view.updateView();
        }
-       
-       private void computeEdgeCompatability()
-       {
+
+       private void computeEdgeCompatability() {
                edgeCompatability = new double[edgeLength.length][];
                edgeAlign = new boolean[edgeLength.length][];
                edgeMatcher = new int[edgeLength.length][];
-               
+
                edgeMatcher[0] = new int[0];
-               
-               for (int ei=1;ei<edgeLength.length;ei++)
-               {
+
+               for (int ei = 1; ei < edgeLength.length; ei++) {
                        edgeCompatability[ei] = new double[ei];
                        edgeAlign[ei] = new boolean[ei];
 
                        List<Integer> compatibleEdges = new 
ArrayList<Integer>(1000);
-                       for (int ej=0;ej<ei;ej++)
-                       {
-                               edgeCompatability[ei][ej] = cangle(ei,ej) * 
cscale(ei, ej) * cpos(ei, ej) * cvis(ei, ej);
-                               edgeAlign[ei][ej] = cangleSign(ei,ej)>0;
-                               
-                               if 
(edgeCompatability[ei][ej]>COMPATABILITY_THRESHOLD) compatibleEdges.add(ej);
+                       for (int ej = 0; ej < ei; ej++) {
+                               edgeCompatability[ei][ej] = cangle(ei, ej) * 
cscale(ei, ej) * cpos(ei, ej) * cvis(ei, ej);
+                               edgeAlign[ei][ej] = cangleSign(ei, ej) > 0;
+
+                               if (edgeCompatability[ei][ej] > 
COMPATABILITY_THRESHOLD)
+                                       compatibleEdges.add(ej);
                        }
-                       
+
                        edgeMatcher[ei] = new int[compatibleEdges.size()];
-                       for (int i=0;i<compatibleEdges.size();i++)
+                       for (int i = 0; i < compatibleEdges.size(); i++)
                                edgeMatcher[ei][i] = compatibleEdges.get(i);
                }
        }
-       
-       private double cangle(int ei, int ej)
-       {
+
+       private double cangle(int ei, int ej) {
                double a = edgePos[1][0][ei] - edgePos[0][0][ei];
                double b = edgePos[1][1][ei] - edgePos[0][1][ei];
                double c = edgePos[1][0][ej] - edgePos[0][0][ej];
                double d = edgePos[1][1][ej] - edgePos[0][1][ej];
-               
-               double cosAlpha = ((a*c) + 
(b*d))/(edgeLength[ei]*edgeLength[ej]);
 
-               double out = Math.abs(cosAlpha); 
-               
-               if (Double.isNaN(out) || Double.isInfinite(out)) return 0;
+               double cosAlpha = ((a * c) + (b * d)) / (edgeLength[ei] * 
edgeLength[ej]);
+
+               double out = Math.abs(cosAlpha);
+
+               if (Double.isNaN(out) || Double.isInfinite(out))
+                       return 0;
                return out;
        }
-       
-       private double cangleSign(int ei, int ej)
-       {
+
+       private double cangleSign(int ei, int ej) {
                double a = edgePos[1][0][ei] - edgePos[0][0][ei];
                double b = edgePos[1][1][ei] - edgePos[0][1][ei];
                double c = edgePos[1][0][ej] - edgePos[0][0][ej];
                double d = edgePos[1][1][ej] - edgePos[0][1][ej];
-               
-               double cosAlpha = ((a*c) + 
(b*d))/(edgeLength[ei]*edgeLength[ej]);
 
-               double out = Math.signum(cosAlpha); 
-               
-               if (Double.isNaN(out) || Double.isInfinite(out)) return 0;
+               double cosAlpha = ((a * c) + (b * d)) / (edgeLength[ei] * 
edgeLength[ej]);
+
+               double out = Math.signum(cosAlpha);
+
+               if (Double.isNaN(out) || Double.isInfinite(out))
+                       return 0;
                return out;
        }
-       
-       private double cscale(int ei, int ej)
-       {
-               double lavg = (edgeLength[ei] + edgeLength[ej])/2.0;
-               
-               //Note: the formula in the paper is wrong (*min vs. /min)
-               double out = 
2.0/((lavg/Math.min(edgeLength[ei],edgeLength[ej])) + 
(Math.max(edgeLength[ei],edgeLength[ej])/lavg)); 
-               
-               if (Double.isNaN(out) || Double.isInfinite(out)) return 0;
+
+       private double cscale(int ei, int ej) {
+               double lavg = (edgeLength[ei] + edgeLength[ej]) / 2.0;
+
+               // Note: the formula in the paper is wrong (*min vs. /min)
+               double out = 2.0 / ((lavg / Math.min(edgeLength[ei], 
edgeLength[ej])) + (Math.max(edgeLength[ei],
+                               edgeLength[ej]) / lavg));
+
+               if (Double.isNaN(out) || Double.isInfinite(out))
+                       return 0;
                return out;
        }
-       
-       private double cpos(int ei, int ej)
-       {
-               double lavg = (edgeLength[ei] + edgeLength[ej])/2.0;
 
-               double out = lavg / (lavg + distance(mid(ei),mid(ej)) ); 
-               
-               if (Double.isNaN(out) || Double.isInfinite(out)) return 0;
-               
-               return out; 
+       private double cpos(int ei, int ej) {
+               double lavg = (edgeLength[ei] + edgeLength[ej]) / 2.0;
+
+               double out = lavg / (lavg + distance(mid(ei), mid(ej)));
+
+               if (Double.isNaN(out) || Double.isInfinite(out))
+                       return 0;
+
+               return out;
        }
-       
+
        private double[] mid(int ei) {
-               return new 
double[]{(edgePos[1][0][ei]+edgePos[0][0][ei])/2.0,(edgePos[1][1][ei]+edgePos[0][1][ei])/2.0};
+               return new double[] { (edgePos[1][0][ei] + edgePos[0][0][ei]) / 
2.0,
+                               (edgePos[1][1][ei] + edgePos[0][1][ei]) / 2.0 };
        }
 
        private double distance(double[] p, double[] q) {
                double x = p[0] - q[0];
                double y = p[1] - q[1];
-               return Math.sqrt(x*x + y*y);
+               return Math.sqrt(x * x + y * y);
        }
-       
-       private double cvis(int ei, int ej)
-       {
-               return Math.min(vis(ei,ej), vis(ej,ei));
+
+       private double cvis(int ei, int ej) {
+               return Math.min(vis(ei, ej), vis(ej, ei));
        }
 
-       private double vis(int ei, int ej)
-       {
-               double[] I0 = getProjection(ei,ej,new 
double[]{edgePos[0][0][ei],edgePos[0][1][ei]});
-               if (I0==null) return 0;
-               
-               double[] I1 = getProjection(ei,ej,new 
double[]{edgePos[1][0][ei],edgePos[1][1][ei]});
-               if (I1==null) return 0;
-               
-               double[] Im = new double[]{(I1[0]-I0[0])/2 + I0[0], 
(I1[1]-I0[1])/2 + I0[1]};
-               
+       private double vis(int ei, int ej) {
+               double[] I0 = getProjection(ei, ej, new double[] { 
edgePos[0][0][ei], edgePos[0][1][ei] });
+               if (I0 == null)
+                       return 0;
+
+               double[] I1 = getProjection(ei, ej, new double[] { 
edgePos[1][0][ei], edgePos[1][1][ei] });
+               if (I1 == null)
+                       return 0;
+
+               double[] Im = new double[] { (I1[0] - I0[0]) / 2 + I0[0], 
(I1[1] - I0[1]) / 2 + I0[1] };
+
                double[] Pm = mid(ej);
-               
+
                double a = distance(Pm, Im);
-               double b = distance(I0,I1);
-               return Math.max(1.0 - 2*a/b, 0); 
+               double b = distance(I0, I1);
+               return Math.max(1.0 - 2 * a / b, 0);
        }
-       
-       private double[] getProjection(int ei, int ej, double[] m)
-       {
-               double dx1 = edgePos[1][0][ei] - edgePos[0][0][ei]; 
+
+       private double[] getProjection(int ei, int ej, double[] m) {
+               double dx1 = edgePos[1][0][ei] - edgePos[0][0][ei];
                double dy1 = edgePos[1][1][ei] - edgePos[0][1][ei];
-               
-               double dx2 = edgePos[1][0][ej] - edgePos[0][0][ej]; 
+
+               double dx2 = edgePos[1][0][ej] - edgePos[0][0][ej];
                double dy2 = edgePos[1][1][ej] - edgePos[0][1][ej];
-               
+
                double cx = edgePos[0][0][ej];
                double cy = edgePos[0][1][ej];
-                               
-               //INTERSECTION
-               //double A1 = dy1;
-               //double B1 = -dx1;
-               //double A2 = dy2;
-               //double B2 = -dx2;
-               
-               //PROJECTION
+
+               // INTERSECTION
+               // double A1 = dy1;
+               // double B1 = -dx1;
+               // double A2 = dy2;
+               // double B2 = -dx2;
+
+               // PROJECTION
                double A1 = dx1;
                double B1 = dy1;
                double A2 = dy2;
                double B2 = -dx2;
-               
-               double C1 = A1*m[0]+B1*m[1];
-               double C2 = A2*cx+B2*cy;
-               
-               double det = A1*B2 - A2*B1;
-               if (Math.abs(det)<1e-10) return null;
-               
-               double x = (B2*C1-B1*C2)/det;
-               double y = (A1*C2-A2*C1)/det;
-               
-               return new double[]{x,y};
+
+               double C1 = A1 * m[0] + B1 * m[1];
+               double C2 = A2 * cx + B2 * cy;
+
+               double det = A1 * B2 - A2 * B1;
+               if (Math.abs(det) < 1e-10)
+                       return null;
+
+               double x = (B2 * C1 - B1 * C2) / det;
+               double y = (A1 * C2 - A2 * C1) / det;
+
+               return new double[] { x, y };
        }
 
-       
-       private void updateForces(double[][][] forces)
-       {
-               //Spring forces
-               for (int ei=0;ei<edgeLength.length;ei++)
-                       for (int ni=0;ni<numNubs;ni++)
-                       {
-                               if (ni==0)
-                               {
+       private void updateForces(double[][][] forces) {
+               // Spring forces
+               for (int ei = 0; ei < edgeLength.length; ei++)
+                       for (int ni = 0; ni < numNubs; ni++) {
+                               if (ni == 0) {
                                        forces[ni][0][ei] = nubs[ni][0][ei] - 
edgePos[0][0][ei];
                                        forces[ni][1][ei] = nubs[ni][1][ei] - 
edgePos[0][1][ei];
-                               }else
-                               {
-                                       forces[ni][0][ei] = nubs[ni][0][ei] - 
nubs[ni-1][0][ei];
-                                       forces[ni][1][ei] = nubs[ni][1][ei] - 
nubs[ni-1][1][ei];
+                               } else {
+                                       forces[ni][0][ei] = nubs[ni][0][ei] - 
nubs[ni - 1][0][ei];
+                                       forces[ni][1][ei] = nubs[ni][1][ei] - 
nubs[ni - 1][1][ei];
                                }
-                               
-                               if (ni==numNubs-1)
-                               {
+
+                               if (ni == numNubs - 1) {
                                        forces[ni][0][ei] += nubs[ni][0][ei] - 
edgePos[1][0][ei];
                                        forces[ni][1][ei] += nubs[ni][1][ei] - 
edgePos[1][1][ei];
-                               }else
-                               {
-                                       forces[ni][0][ei] += nubs[ni][0][ei] - 
nubs[ni+1][0][ei];
-                                       forces[ni][1][ei] += nubs[ni][1][ei] - 
nubs[ni+1][1][ei];
+                               } else {
+                                       forces[ni][0][ei] += nubs[ni][0][ei] - 
nubs[ni + 1][0][ei];
+                                       forces[ni][1][ei] += nubs[ni][1][ei] - 
nubs[ni + 1][1][ei];
                                }
-                               
+
                                forces[ni][0][ei] *= -K;
                                forces[ni][1][ei] *= -K;
-                               
+
                        }
-               
-               //Electrostatic forces
-               ExecutorService exec = 
Executors.newFixedThreadPool(Math.min(numNubs,Runtime.getRuntime().availableProcessors()));
-               
-               for (int ni=0;ni<numNubs;ni++)
+
+               // Electrostatic forces
+               ExecutorService exec = 
Executors.newFixedThreadPool(Math.min(numNubs, Runtime.getRuntime()
+                               .availableProcessors()));
+
+               for (int ni = 0; ni < numNubs; ni++)
                        exec.execute(new EdgeBundlerRunner(ni, numNubs, 
edgeAlign, nubs, forces, edgeCompatability, edgeMatcher));
-                       
+
                exec.shutdown();
-               
-               try {exec.awaitTermination(30, TimeUnit.DAYS);}
-               catch (InterruptedException e) 
{e.printStackTrace();exec.shutdownNow();}
+
+               try {
+                       exec.awaitTermination(30, TimeUnit.DAYS);
+               } catch (InterruptedException e) {
+                       e.printStackTrace();
+                       exec.shutdownNow();
+               }
        }
-       
-       private void updateNubs(double[][][] forces)
-       {
-               for (int ei=0;ei<edgeLength.length;ei++)
-                       for (int ni=0;ni<numNubs;ni++)
-                       {
+
+       private void updateNubs(double[][][] forces) {
+               for (int ei = 0; ei < edgeLength.length; ei++)
+                       for (int ni = 0; ni < numNubs; ni++) {
                                nubs[ni][0][ei] += forces[ni][0][ei];
                                nubs[ni][1][ei] += forces[ni][1][ei];
-                               
-                               //nubs[ni][0][ei] += 
Math.signum(forces[ni][0][ei]) * Math.min(Math.abs(forces[ni][0][ei]) * 
stepsize, networkScale * 1e-2);
-                               //nubs[ni][1][ei] += 
Math.signum(forces[ni][1][ei]) * Math.min(Math.abs(forces[ni][1][ei]) * 
stepsize, networkScale * 1e-2);
+
+                               // nubs[ni][0][ei] += 
Math.signum(forces[ni][0][ei]) *
+                               // Math.min(Math.abs(forces[ni][0][ei]) * 
stepsize, networkScale
+                               // * 1e-2);
+                               // nubs[ni][1][ei] += 
Math.signum(forces[ni][1][ei]) *
+                               // Math.min(Math.abs(forces[ni][1][ei]) * 
stepsize, networkScale
+                               // * 1e-2);
                        }
        }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to