Point2D viewCenter = getViewCenter(); double viewRadius = getViewRadius(); double ratio = getRatio();
Point2D viewCenter = getViewCenter(); double ratio = getRatio();
new LayoutLensSupport<>( vv, new MagnifyTransformer( lens, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)),
new MagnifyTransformer(lensTransformer.getLens(), layoutTransformer); p = delegateTransformer.inverseTransform(p); p = ht.inverseTransform(p); } else if (viewTransformer instanceof HyperbolicShapeTransformer) { HyperbolicTransformer ht =
new LayoutLensSupport<>( vv, new MagnifyTransformer( lens, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)),
new LayoutLensSupport<>( vv, new MagnifyTransformer( lens, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)),
/** * override base class to un-project the fisheye effect */ public Point2D inverseTransform(Point2D viewPoint) { Point2D viewCenter = getViewCenter(); double viewRadius = getViewRadius(); double ratio = getRatio(); double dx = viewPoint.getX() - viewCenter.getX(); double dy = viewPoint.getY() - viewCenter.getY(); // factor out ellipse dx *= ratio; Point2D pointFromCenter = new Point2D.Double(dx, dy); PolarPoint polar = PolarPoint.cartesianToPolar(pointFromCenter); double radius = polar.getRadius(); if(radius > viewRadius) return delegate.inverseTransform(viewPoint); double mag = magnification; radius /= mag; polar.setRadius(radius); Point2D projectedPoint = PolarPoint.polarToCartesian(polar); projectedPoint.setLocation(projectedPoint.getX()/ratio, projectedPoint.getY()); Point2D translatedBack = new Point2D.Double(projectedPoint.getX()+viewCenter.getX(), projectedPoint.getY()+viewCenter.getY()); return delegate.inverseTransform(translatedBack); }
new ModalLensGraphMouse(new LensMagnificationGraphMousePlugin(1.f, 6.f, .2f))); magnifyLayoutSupport = new LayoutLensSupport<String,Number>(vv, new MagnifyTransformer(vv, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)), new ModalLensGraphMouse(new LensMagnificationGraphMousePlugin(1.f, 6.f, .2f)));
new LayoutLensSupport<>( vv, new MagnifyTransformer( lens, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)),