public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g.setColor(Color.cyan); for (Rectangle2D r : rectangles) { g2d.draw(rc.getMultiLayerTransformer().transform(MultiLayerTransformer.Layer.LAYOUT, r)); } }
public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; g.setColor(Color.cyan); for(Rectangle2D r : rectangles) { g2d.draw(rc.getMultiLayerTransformer().transform(Layer.LAYOUT, r)); } }
public void paint(Graphics g) { g.setColor(Color.gray); Graphics2D g2d = (Graphics2D)g; Point2D center = radialLayout.getCenter(); Ellipse2D ellipse = new Ellipse2D.Double(); for(double d : depths) { ellipse.setFrameFromDiagonal(center.getX()-d, center.getY()-d, center.getX()+d, center.getY()+d); Shape shape = vv.getRenderContext().getMultiLayerTransformer().transform(ellipse); g2d.draw(shape); } }
/** * Overriden to perform lens effects when transforming from Layout to view. Used when projecting * the selection Lens (the rectangular area drawn with the mouse) back into the view. * * @param vv * @param p * @return */ public Point2D transform(VisualizationServer<N, E> vv, Point2D p) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.transform(p); }
/** * override to consider Lens effects * * @param vv * @param shape * @return */ protected Shape transform(VisualizationViewer<N, E> vv, Shape shape) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.transform(shape); }
/** * Overriden to perform lens effects when transforming from Layout to view. Used when projecting * the selection Lens (the rectangular area drawn with the mouse) back into the view. * * @param vv * @param shape * @return */ public Shape transform(VisualizationServer<N, E> vv, Shape shape) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); return multiLayerTransformer.transform(shape); }
private void checkVertex(V v) { // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); for(Rectangle2D r : bounds) { if(shape.intersects(r)) { vertices.add(v); } } }
/** * Returns the vertex shape in view coordinates. * @param rc the render context used for rendering the vertex * @param v the vertex whose shape is to be returned * @param layout the layout algorithm that provides coordinates for the vertex * @param coords the x and y view coordinates * @return the vertex shape in view coordinates */ protected Shape prepareFinalVertexShape(RenderContext<V,E> rc, V v, Layout<V,E> layout, int[] coords) { // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); coords[0] = (int)x; coords[1] = (int)y; // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); return shape; }
public void paintNode( RenderContext<N, E> renderContext, VisualizationModel<N, E> visualizationModel, N v) { if (renderContext.getNodeIncludePredicate().test(v)) { // get the shape to be rendered Shape shape = renderContext.getNodeShapeFunction().apply(v); LayoutModel<N> layoutModel = visualizationModel.getLayoutModel(); Point p = layoutModel.apply(v); Point2D p2d = renderContext .getMultiLayerTransformer() .transform(Layer.LAYOUT, new Point2D.Double(p.x, p.y)); float x = (float) p2d.getX(); float y = (float) p2d.getY(); // create a transform that translates to the location of // the node to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x, y); // transform the node shape with xtransform shape = xform.createTransformedShape(shape); log.trace("prepared a shape for " + v + " to go at " + p); paintShapeForNode(renderContext, v, shape); } }
public void paint(Graphics g) { g.setColor(Color.gray); Graphics2D g2d = (Graphics2D)g; Ellipse2D ellipse = new Ellipse2D.Double(); for(String v : layout.getGraph().getVertices()) { Double radius = layout.getRadii().get(v); if(radius == null) continue; Point2D p = layout.apply(v); ellipse.setFrame(-radius, -radius, 2*radius, 2*radius); AffineTransform at = AffineTransform.getTranslateInstance(p.getX(), p.getY()); Shape shape = at.createTransformedShape(ellipse); MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); if(viewTransformer instanceof MutableTransformerDecorator) { shape = vv.getRenderContext().getMultiLayerTransformer().transform(shape); } else { shape = vv.getRenderContext().getMultiLayerTransformer().transform(Layer.LAYOUT,shape); } g2d.draw(shape); } }
public Collection<V> getVertices(Layout<V, E> layout, Shape rectangle) { Set<V> pickedVertices = new HashSet<V>(); while(true) { try { for(V v : getFilteredVertices(layout)) { Point2D p = layout.apply(v); if(p == null) continue; p = vv.getRenderContext().getMultiLayerTransformer().transform(p); if(rectangle.contains(p)) { pickedVertices.add(v); } } break; } catch(ConcurrentModificationException cme) {} } return pickedVertices; }
public void paintVertex(RenderContext<V,E> rc, Layout<V,E> layout, V v) { Graph<V,E> graph = layout.getGraph(); if (rc.getVertexIncludePredicate().apply(Context.<Graph<V,E>,V>getInstance(graph,v))) { boolean vertexHit = true; // get the shape to be rendered Shape shape = rc.getVertexShapeTransformer().apply(v); Point2D p = layout.apply(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); float x = (float)p.getX(); float y = (float)p.getY(); // create a transform that translates to the location of // the vertex to be rendered AffineTransform xform = AffineTransform.getTranslateInstance(x,y); // transform the vertex shape with xtransform shape = xform.createTransformedShape(shape); vertexHit = vertexHit(rc, shape); //rc.getViewTransformer().transform(shape).intersects(deviceRectangle); if (vertexHit) { paintShapeForVertex(rc, v, shape); } } }
public void paint(Graphics g) { g.setColor(Color.gray); Graphics2D g2d = (Graphics2D) g; Ellipse2D ellipse = new Ellipse2D.Double(); for (Object v : vv.getModel().getNetwork().nodes()) { Double radius = layoutAlgorithm.getRadii().get(v); if (radius == null) { continue; } Point p = vv.getModel().getLayoutModel().apply(v); ellipse.setFrame(-radius, -radius, 2 * radius, 2 * radius); AffineTransform at = AffineTransform.getTranslateInstance(p.x, p.y); Shape shape = at.createTransformedShape(ellipse); MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); if (viewTransformer instanceof MutableTransformerDecorator) { shape = vv.getRenderContext().getMultiLayerTransformer().transform(shape); } else { shape = vv.getRenderContext().getMultiLayerTransformer().transform(Layer.LAYOUT, shape); } g2d.draw(shape); } }
shape = xform.createTransformedShape(shape); shape = vv.getRenderContext().getMultiLayerTransformer().transform(shape); Rectangle2D bounds = shape.getBounds2D(); p.setLocation(bounds.getCenterX(),bounds.getCenterY());
public void labelVertex(final RenderContext<ElementName, Dependency> rc, final Layout<ElementName, Dependency> layout, final ElementName v, final String label) { final Graph<ElementName, Dependency> graph = layout.getGraph(); if (rc.getVertexIncludePredicate().evaluate( Context.<Graph<ElementName, Dependency>, ElementName> getInstance( graph, v)) == false) { return; } final GraphicsDecorator g = rc.getGraphicsContext(); final Component component = prepareRenderer(rc, rc.getVertexLabelRenderer(), label, rc.getPickedVertexState().isPicked(v), v); final Dimension d = component.getPreferredSize(); final int h_offset = -d.width / 2; final int v_offset = -d.height / 2; Point2D p = layout.transform(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); final int x = (int) p.getX(); final int y = (int) p.getY(); g.draw(component, rc.getRendererPane(), x + h_offset, y + v_offset, d.width, d.height, true); }
public void labelVertex(final RenderContext<ElementName, Dependency> rc, final Layout<ElementName, Dependency> layout, final ElementName v, final String label) { final Graph<ElementName, Dependency> graph = layout.getGraph(); if (rc.getVertexIncludePredicate().evaluate( Context.<Graph<ElementName, Dependency>, ElementName> getInstance( graph, v)) == false) { return; } final GraphicsDecorator g = rc.getGraphicsContext(); final Component component = prepareRenderer(rc, rc.getVertexLabelRenderer(), label, rc.getPickedVertexState().isPicked(v), v); final Dimension d = component.getPreferredSize(); final int h_offset = -d.width / 2; final int v_offset = -d.height / 2; Point2D p = layout.transform(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); final int x = (int) p.getX(); final int y = (int) p.getY(); g.draw(component, rc.getRendererPane(), x + h_offset, y + v_offset, d.width, d.height, true); }
public void labelVertex(final RenderContext<ElementName, Dependency> rc, final Layout<ElementName, Dependency> layout, final ElementName v, final String label) { final Graph<ElementName, Dependency> graph = layout.getGraph(); if (rc.getVertexIncludePredicate().evaluate( Context.<Graph<ElementName, Dependency>, ElementName> getInstance( graph, v)) == false) { return; } final GraphicsDecorator g = rc.getGraphicsContext(); final Component component = prepareRenderer(rc, rc.getVertexLabelRenderer(), label, rc.getPickedVertexState().isPicked(v), v); final Dimension d = component.getPreferredSize(); final int h_offset = -d.width / 2; final int v_offset = -d.height / 2; Point2D p = layout.transform(v); p = rc.getMultiLayerTransformer().transform(Layer.LAYOUT, p); final int x = (int) p.getX(); final int y = (int) p.getY(); g.draw(component, rc.getRendererPane(), x + h_offset, y + v_offset, d.width, d.height, true); }
public Shape transform(VisualizationServer<N, E> vv, Shape shape) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); MutableTransformer viewTransformer = multiLayerTransformer.getTransformer(Layer.VIEW); MutableTransformer layoutTransformer = multiLayerTransformer.getTransformer(Layer.LAYOUT); VisualizationModel<N, E> model = vv.getModel(); if (viewTransformer instanceof LensTransformer) { shape = multiLayerTransformer.transform(shape); } else if (layoutTransformer instanceof LensTransformer) { LayoutModel<N> layoutModel = model.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 = shapeChanger.transform(layoutDelegate.transform(shape)); } else { shape = multiLayerTransformer.transform(Layer.LAYOUT, shape); } return shape; }
public Point2D transform(VisualizationServer<N, E> vv, Point2D p) { MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); MutableTransformer viewTransformer = multiLayerTransformer.getTransformer(Layer.VIEW); MutableTransformer layoutTransformer = multiLayerTransformer.getTransformer(Layer.LAYOUT); VisualizationModel<N, E> model = vv.getModel(); if (viewTransformer instanceof LensTransformer) { // use all layers p = multiLayerTransformer.transform(p); } else if (layoutTransformer instanceof LensTransformer) { // apply the shape changer LayoutModel<N> layoutModel = model.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(); p = shapeChanger.transform(layoutDelegate.transform(p)); } else { // use the default p = multiLayerTransformer.transform(Layer.LAYOUT, p); } return p; }
public void paint(Graphics g) { if(mPred == null) return; // for all edges, paint edges that are in shortest path for (Number e : layout.getGraph().getEdges()) { if(isBlessed(e)) { String v1 = mGraph.getEndpoints(e).getFirst(); String v2 = mGraph.getEndpoints(e).getSecond(); Point2D p1 = layout.apply(v1); Point2D p2 = layout.apply(v2); p1 = vv.getRenderContext().getMultiLayerTransformer().transform(Layer.LAYOUT, p1); p2 = vv.getRenderContext().getMultiLayerTransformer().transform(Layer.LAYOUT, p2); Renderer<String,Number> renderer = vv.getRenderer(); renderer.renderEdge( vv.getRenderContext(), layout, e); } } } });