/** zoom the display in or out, depending on the direction of the mouse wheel motion. */ public void scale(VisualizationServer<?, ?> vv, float amount, Point2D from) { MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); viewTransformer.scale(amount, amount, from); vv.repaint(); } }
/** * zoom the display in or out, depending on the direction of the * mouse wheel motion. */ public void scale(VisualizationServer<?, ?> vv, float amount, Point2D from) { MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); viewTransformer.scale(amount, amount, from); vv.repaint(); } }
/** zoom the display in or out, depending on the direction of the mouse wheel motion. */ public void scale(VisualizationServer<?, ?> vv, float amount, Point2D from) { Point2D ivtfrom = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(Layer.VIEW, from); MutableTransformer modelTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT); modelTransformer.scale(amount, amount, ivtfrom); vv.repaint(); } }
/** * zoom the display in or out, depending on the direction of the * mouse wheel motion. */ public void scale(VisualizationServer<?, ?> vv, float amount, Point2D from) { Point2D ivtfrom = vv.getRenderContext().getMultiLayerTransformer() .inverseTransform(Layer.VIEW, from); MutableTransformer modelTransformer = vv.getRenderContext().getMultiLayerTransformer() .getTransformer(Layer.LAYOUT); modelTransformer.scale(amount, amount, ivtfrom); vv.repaint(); } }
public void scale(VisualizationServer<?,?> vv, float amount, Point2D at) { MutableTransformer layoutTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT); MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); double modelScale = layoutTransformer.getScale(); double viewScale = viewTransformer.getScale(); double inverseModelScale = Math.sqrt(crossover)/modelScale; double inverseViewScale = Math.sqrt(crossover)/viewScale; double scale = modelScale * viewScale; Point2D transformedAt = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(Layer.VIEW, at); if((scale*amount - crossover)*(scale*amount - crossover) < 0.001) { // close to the control point, return both Functions to a scale of sqrt crossover value layoutTransformer.scale(inverseModelScale, inverseModelScale, transformedAt); viewTransformer.scale(inverseViewScale, inverseViewScale, at); } else if(scale*amount < crossover) { // scale the viewTransformer, return the layoutTransformer to sqrt crossover value viewTransformer.scale(amount, amount, at); layoutTransformer.scale(inverseModelScale, inverseModelScale, transformedAt); } else { // scale the layoutTransformer, return the viewTransformer to crossover value layoutTransformer.scale(amount, amount, transformedAt); viewTransformer.scale(inverseViewScale, inverseViewScale, at); } vv.repaint(); } }
viewTransformer.scale(inverseViewScale, inverseViewScale, at); vv.repaint();