public void step() { synchronized (vv.getGraphLayout()) { Graph<V, E> g = endLayout.getGraph(); for (V v : g.getVertices()) { Point2D tp = transitionLayout.transform(v); if (tp == null) tp = new Point2D.Double(0, 0); Point2D fp = endLayout.transform(v); double dx = (fp.getX() - tp.getX()) / (count - counter); double dy = (fp.getY() - tp.getY()) / (count - counter); transitionLayout.setLocation(v, new Point2D.Double(tp.getX() + dx, tp.getY() + dy)); } counter++; if (counter >= count) { done = true; // ((RelVisualizationModel)vv.getModel()).setRelaxer(relaxer); ((RelVisualizationModel) vv.getModel()).setAnimatorGraphLayout(endLayout); } vv.repaint(); } }
public RelLayoutTransition( VisualizationViewer<V, E> vv, Layout<V, E> startLayout, Layout<V, E> endLayout) { this.vv = vv; this.startLayout = startLayout; this.endLayout = endLayout; if (endLayout instanceof IterativeContext) { relaxer = new RelVisRunner((IterativeContext) endLayout); relaxer.prerelax(); relaxer.relax(); } this.transitionLayout = new RelStaticLayout<V, E>(startLayout.getGraph(), startLayout); vv.setGraphLayout(transitionLayout); }