public LensPaintable(LensTransformer lensTransformer) { this.lensShape = lensTransformer.getLens().getLensShape(); }
public LensControls(LensTransformer lensTransformer) { this.lensShape = lensTransformer.getLens().getLensShape(); }
/** change magnification of the lens, depending on the direction of the mouse wheel motion. */ public void mouseWheelMoved(MouseWheelEvent e) { boolean accepted = checkModifiers(e); float delta = this.delta; if (accepted == true) { VisualizationViewer<?, ?> vv = (VisualizationViewer<?, ?>) e.getSource(); MutableTransformer layoutTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT); MutableTransformer viewTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW); int amount = e.getWheelRotation(); if (amount < 0) { delta = -delta; } Lens lens = (layoutTransformer instanceof LensTransformer) ? ((LensTransformer) layoutTransformer).getLens() : (viewTransformer instanceof LensTransformer) ? ((LensTransformer) viewTransformer).getLens() : null; if (lens != null) { changeMagnification(lens, delta); } vv.repaint(); e.consume(); } } }
public ViewLensSupport( VisualizationViewer<N, E> vv, LensTransformer lensTransformer, ModalGraphMouse lensGraphMouse) { super(vv, lensGraphMouse); this.renderContext = vv.getRenderContext(); this.pickSupport = renderContext.getPickSupport(); this.savedGraphicsDecorator = renderContext.getGraphicsContext(); this.lensTransformer = lensTransformer; LayoutModel layoutModel = vv.getModel().getLayoutModel(); Dimension d = new Dimension(layoutModel.getWidth(), layoutModel.getHeight()); lensTransformer.getLens().setSize(d); this.lensGraphicsDecorator = new TransformingFlatnessGraphics(lensTransformer); this.savedEdgeRenderer = vv.getRenderer().getEdgeRenderer(); }
if (transformer instanceof LensTransformer) { LensTransformer ht = (LensTransformer) transformer; RectangularShape lensShape = ht.getLens().getLensShape(); if (lensShape.contains(x1, y1) || lensShape.contains(x2, y2)) { flatness = .05f;
hyperbolicLayoutSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicViewSupport.getLensTransformer().getLens().getLensShape()); magnifyViewSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicLayoutSupport.getLensTransformer().getLens().getLensShape()); magnifyLayoutSupport .getLensTransformer() .getLens() .setLensShape(magnifyViewSupport.getLensTransformer().getLens().getLensShape());
hyperbolicLayoutSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicViewSupport.getLensTransformer().getLens().getLensShape()); magnifyViewSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicLayoutSupport.getLensTransformer().getLens().getLensShape()); magnifyLayoutSupport .getLensTransformer() .getLens() .setLensShape(magnifyViewSupport.getLensTransformer().getLens().getLensShape());
new MagnifyTransformer(lensTransformer.getLens(), layoutTransformer); p = delegateTransformer.inverseTransform(p); p = ht.inverseTransform(p); } else if (viewTransformer instanceof HyperbolicShapeTransformer) { HyperbolicTransformer ht = new HyperbolicTransformer(lensTransformer.getLens(), layoutTransformer); p = delegateTransformer.inverseTransform(p); p = ht.inverseTransform(p);
new HyperbolicShapeTransformer(d, viewTransformer); LensTransformer lensTransformer = (LensTransformer) layoutTransformer; shapeChanger.getLens().setLensShape(lensTransformer.getLens().getLensShape()); MutableTransformer layoutDelegate = ((MutableTransformerDecorator) layoutTransformer).getDelegate();
hyperbolicLayoutSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicViewSupport.getLensTransformer().getLens().getLensShape()); magnifyViewSupport .getLensTransformer() .getLens() .setLensShape(hyperbolicLayoutSupport.getLensTransformer().getLens().getLensShape()); magnifyLayoutSupport .getLensTransformer() .getLens() .setLensShape(magnifyViewSupport.getLensTransformer().getLens().getLensShape());
public void paint(Graphics g) { g.setColor(Color.gray); Graphics2D g2d = (Graphics2D) g; Point center = radialLayoutAlgorithm.getCenter(layoutModel); Ellipse2D ellipse = new Ellipse2D.Double(); for (double d : depths) { ellipse.setFrameFromDiagonal(center.x - d, center.y - d, center.x + d, center.y + d); Shape shape = ellipse; MultiLayerTransformer multiLayerTransformer = vv.getRenderContext().getMultiLayerTransformer(); MutableTransformer viewTransformer = multiLayerTransformer.getTransformer(Layer.VIEW); MutableTransformer layoutTransformer = multiLayerTransformer.getTransformer(Layer.LAYOUT); if (viewTransformer instanceof MutableTransformerDecorator) { shape = multiLayerTransformer.transform(shape); } else if (layoutTransformer instanceof LensTransformer) { LayoutModel<String> layoutModel = vv.getModel().getLayoutModel(); Dimension dimension = new Dimension(layoutModel.getWidth(), layoutModel.getHeight()); HyperbolicShapeTransformer shapeChanger = new HyperbolicShapeTransformer(dimension, viewTransformer); LensTransformer lensTransformer = (LensTransformer) layoutTransformer; shapeChanger.getLens().setLensShape(lensTransformer.getLens().getLensShape()); MutableTransformer layoutDelegate = ((MutableTransformerDecorator) layoutTransformer).getDelegate(); shape = shapeChanger.transform(layoutDelegate.transform(shape)); } else { shape = vv.getRenderContext().getMultiLayerTransformer().transform(Layer.LAYOUT, shape); } g2d.draw(shape); } }
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; }
/** * 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; } }