@Override public Point2D getCanvasPointFromNetPlanPoint(Point2D npCoord) { Point2D layoutOrViewCoordinates = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(Layer.LAYOUT, npCoord); layoutOrViewCoordinates.setLocation(layoutOrViewCoordinates.getX(), -layoutOrViewCoordinates.getY()); return layoutOrViewCoordinates; }
/** * override to consider Lens effects * * @param vv * @param multiLayerTransformer * @param down * @param out */ protected void updatePickingTargets( VisualizationViewer vv, MultiLayerTransformer multiLayerTransformer, Point2D down, Point2D out) { log.trace("updatePickingTargets with {} to {}", down, out); viewRectangle.setFrameFromDiagonal(down, out); layoutTargetShape = multiLayerTransformer.inverseTransform(viewRectangle); if (log.isTraceEnabled()) { log.trace("viewRectangle {}", viewRectangle); log.trace("layoutTargetShape bounds {}", layoutTargetShape.getBounds()); } }
public Shape viewOnLayout() { Dimension d = this.getSize(); MultiLayerTransformer vt = renderContext.getMultiLayerTransformer(); Shape s = new Rectangle2D.Double(0, 0, d.width, d.height); return vt.inverseTransform(s); }
/** * override to consider Lens effects * * @param vv * @param p * @return */ protected Point2D inverseTransform(VisualizationViewer<N, E> vv, Point2D p) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.inverseTransform(p); }
/** * Overriden to apply lens effects to the transformation from view to layout coordinates * * @param vv * @param p * @return */ public Point2D inverseTransform(VisualizationServer<N, E> vv, Point2D p) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.inverseTransform(p); }
/** * Overriden to perform lens effects when inverse transforming from view to layout. * * @param vv * @param shape * @return */ public Shape inverseTransform(VisualizationServer<N, E> vv, Shape shape) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.inverseTransform(shape); } }
@Override public Point2D getCanvasPointFromScreenPoint(Point2D screenPoint) { return vv.getRenderContext().getMultiLayerTransformer().inverseTransform(Layer.LAYOUT, screenPoint); }
public void Animator(String vertex) { Layout<String, String> layout = vv.getGraphLayout(); Point2D q = layout.transform(vertex); Point2D lvc = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(vv.getCenter()); final double dx = (lvc.getX() - q.getX()) / 10; final double dy = (lvc.getY() - q.getY()) / 10; Runnable animator = new Runnable() { public void run() { for (int i = 0; i < 10; i++) { vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).translate(dx, dy); try { Thread.sleep(100); } catch (InterruptedException ex) { } } } }; Thread thread = new Thread(animator); thread.start(); }
public Rectangle getCurrentCanvasViewWindow() { return vv.getRenderContext().getMultiLayerTransformer().inverseTransform(vv.getBounds()).getBounds(); }
public void actionPerformed(ActionEvent e) { N newNode = nodeFactory.get(); graph.addNode(newNode); Point2D p2d = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(p); vv.getModel().getLayoutModel().set(newNode, p2d.getX(), p2d.getY()); vv.repaint(); } });
public void actionPerformed(ActionEvent e) { V newVertex = vertexFactory.get(); graph.addVertex(newVertex); layout.setLocation(newVertex, vv.getRenderContext().getMultiLayerTransformer().inverseTransform(p)); vv.repaint(); } });
/** called by the superclass to display tooltips */ public String getToolTipText(MouseEvent event) { LayoutModel<N> layoutModel = getModel().getLayoutModel(); Point2D p = null; if (nodeToolTipFunction != null) { p = getTransformSupport().inverseTransform(this, event.getPoint()); N node = getPickSupport().getNode(layoutModel, p.getX(), p.getY()); if (node != null) { return nodeToolTipFunction.apply(node); } } if (edgeToolTipFunction != null) { if (p == null) { p = renderContext.getMultiLayerTransformer().inverseTransform(Layer.VIEW, event.getPoint()); } E edge = getPickSupport().getEdge(layoutModel, p.getX(), p.getY()); if (edge != null) { return edgeToolTipFunction.apply(edge); } } if (mouseEventToolTipFunction != null) { return mouseEventToolTipFunction.apply(event); } return super.getToolTipText(event); }
public void startNodeCreate(BasicVisualizationServer<N, E> vv, Point2D point) { Preconditions.checkState( vv.getModel().getNetwork() instanceof MutableNetwork<?, ?>, "graph must be mutable"); N newNode = nodeFactory.get(); VisualizationModel<N, E> visualizationModel = vv.getModel(); MutableNetwork<N, E> graph = (MutableNetwork<N, E>) visualizationModel.getNetwork(); graph.addNode(newNode); Point2D p2d = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(point); visualizationModel.getLayoutModel().set(newNode, p2d.getX(), p2d.getY()); vv.repaint(); }
@Override public void mouseClicked(MouseEvent e) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); Point2D layoutPoint = multiLayerTransformer.inverseTransform(e.getX(), e.getY()); Object node = vv.getNodeSpatial().getClosestElement(layoutPoint); if (node != null) { vv.getPickedNodeState().clear(); vv.getPickedNodeState().pick(node, true); } } });
@Override public void mouseClicked(MouseEvent e) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); Point2D layoutPoint = multiLayerTransformer.inverseTransform(e.getX(), e.getY()); Object edge = vv.getEdgeSpatial().getClosestElement(layoutPoint); if (edge != null) { vv.getPickedEdgeState().clear(); vv.getPickedEdgeState().pick(edge, true); } } });
public void startVertexCreate(BasicVisualizationServer<V, E> vv, Point2D point) { V newVertex = vertexFactory.get(); Layout<V,E> layout = vv.getGraphLayout(); Graph<V,E> graph = layout.getGraph(); graph.addVertex(newVertex); layout.setLocation(newVertex, vv.getRenderContext().getMultiLayerTransformer().inverseTransform(point)); 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(); } }
/** * Scale to the absolute value passed as 'amount'. * * @param vv the VisualizationServer used for rendering; provides the layout and view transformers. * @param amount the amount by which to scale * @param at the point of reference for scaling */ 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; Point2D transformedAt = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(Layer.VIEW, at); // return the Functions to 1.0 layoutTransformer.scale(inverseModelScale, inverseModelScale, transformedAt); viewTransformer.scale(inverseViewScale, inverseViewScale, at); super.scale(vv, amount, at); } }
/** * Overriden to perform lens effects when inverse transforming from view to layout. * * @param vv * @param shape * @return */ @Override public Shape inverseTransform(VisualizationServer<N, E> vv, Shape shape) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); MutableTransformer viewTransformer = multiLayerTransformer.getTransformer(Layer.VIEW); MutableTransformer layoutTransformer = multiLayerTransformer.getTransformer(Layer.LAYOUT); if (layoutTransformer instanceof LensTransformer) { // apply the shape changer LayoutModel<N> layoutModel = vv.getModel().getLayoutModel(); Dimension d = new Dimension(layoutModel.getWidth(), layoutModel.getHeight()); HyperbolicShapeTransformer shapeChanger = new HyperbolicShapeTransformer(d, viewTransformer); LensTransformer lensTransformer = (LensTransformer) layoutTransformer; shapeChanger.getLens().setLensShape(lensTransformer.getLens().getLensShape()); MutableTransformer layoutDelegate = ((MutableTransformerDecorator) layoutTransformer).getDelegate(); shape = layoutDelegate.inverseTransform(shapeChanger.inverseTransform(shape)); } else { // if the viewTransformer is either a LensTransformer or the default shape = multiLayerTransformer.inverseTransform(shape); } return shape; } }