![JAR search and dependency download from the Maven repository](/logo.png)
edu.uci.ics.jung.visualization.jai.PerspectiveImageLensSupport Maven / Gradle / Ivy
Go to download
Jung2 rendering project that uses Java Advanced Imaging (JAI) for non-affine transforms
The newest version!
/*
* Copyright (c) 2005, the JUNG Project and the Regents of the University of
* California All rights reserved.
*
* This software is open-source under the BSD license; see either "license.txt"
* or http://jung.sourceforge.net/license.txt for a description.
*
* Created on Jul 21, 2005
*/
package edu.uci.ics.jung.visualization.jai;
import javax.media.jai.PerspectiveTransform;
import edu.uci.ics.jung.algorithms.layout.GraphElementAccessor;
import edu.uci.ics.jung.visualization.Layer;
import edu.uci.ics.jung.visualization.RenderContext;
import edu.uci.ics.jung.visualization.VisualizationViewer;
import edu.uci.ics.jung.visualization.picking.ViewLensShapePickSupport;
import edu.uci.ics.jung.visualization.renderers.BasicRenderer;
import edu.uci.ics.jung.visualization.renderers.Renderer;
import edu.uci.ics.jung.visualization.transform.shape.GraphicsDecorator;
import edu.uci.ics.jung.visualization.transform.shape.TransformingGraphics;
/**
* A class to make it easy to add a Perspective projection
* to a jung graph application. See PerspectiveTransformerDemo
* for an example of how to use it.
*
* @author Tom Nelson
*/
public class PerspectiveImageLensSupport extends AbstractPerspectiveTransformSupport {
protected RenderContext renderContext;
protected GraphicsDecorator lensGraphicsDecorator;
protected GraphicsDecorator savedGraphicsDecorator;
protected Renderer renderer;
protected Renderer transformingRenderer;
protected GraphElementAccessor pickSupport;
static final String instructions = "";
/**
* @param vv the VisualizationViewer to work on
*/
public PerspectiveImageLensSupport(VisualizationViewer vv) {
super(vv);
this.renderContext = vv.getRenderContext();
this.pickSupport = renderContext.getPickSupport();
this.renderer = vv.getRenderer();
this.transformingRenderer = new BasicRenderer();
this.perspectiveTransformer =
new PerspectiveShapeTransformer(new PerspectiveTransform(), vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW));
this.transformingRenderer.setVertexRenderer(new TransformingImageVertexIconRenderer());
this.lensGraphicsDecorator = new TransformingGraphics(perspectiveTransformer);
this.savedGraphicsDecorator = renderContext.getGraphicsContext();
this.renderer = vv.getRenderer();
}
public void activate() {
lens = new Lens(perspectiveTransformer, vv.getSize());
renderContext.setPickSupport(new ViewLensShapePickSupport(vv));
vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.VIEW, perspectiveTransformer);
vv.getRenderContext().setGraphicsContext(lensGraphicsDecorator);
vv.setRenderer(transformingRenderer);
vv.addPreRenderPaintable(lens);
vv.setToolTipText(instructions);
vv.repaint();
}
public void deactivate() {
renderContext.setPickSupport(pickSupport);
vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.VIEW, perspectiveTransformer.getDelegate());
vv.removePreRenderPaintable(lens);
vv.getRenderContext().setGraphicsContext(savedGraphicsDecorator);
vv.setRenderer(renderer);
vv.setToolTipText(defaultToolTipText);
vv.repaint();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy