Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I wanted to automatically update the satellite view relatively to a VisualizationViewer with picking support enabled. </p> <p>I have finally adopted another solution: no automatic update of the satellite view but a pan using mouse button 2, and a zoom using CTRL+Mouse_Wheel.</p> <p>Here is the class, it may be helpful... :</p> <pre><code>public class SatelliteVisualizationViewerMouseControler implements MouseListener, MouseMotionListener, MouseWheelListener { private SatelliteVisualizationViewer&lt;SVertex, PEdge&gt; vv; private Point drag_point; private double zoom_factor = 0.1; public SatelliteVisualizationViewerMouseControler( SatelliteVisualizationViewer&lt;SVertex, PEdge&gt; vv) { this.vv = vv; } @Override public void mouseDragged(MouseEvent e) { if (drag_point != null) { Point2D l_drag_point = vv.getRenderContext() .getMultiLayerTransformer() .inverseTransform(Layer.LAYOUT, drag_point); Point2D l_e_point = vv.getRenderContext() .getMultiLayerTransformer() .inverseTransform(Layer.LAYOUT, e.getPoint()); double delta_x = l_e_point.getX() - l_drag_point.getX(); double delta_y = l_e_point.getY() - l_drag_point.getY(); double scale = vv.getRenderContext().getMultiLayerTransformer() .getTransformer(Layer.VIEW).getScale(); vv.getRenderContext().getMultiLayerTransformer() .getTransformer(Layer.LAYOUT) .translate(delta_x * (1 / scale), delta_y * (1 / scale)); drag_point = e.getPoint(); } } @Override public void mouseMoved(MouseEvent e) { } @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON2) { drag_point = e.getPoint(); } } @Override public void mouseReleased(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON2) { drag_point = null; } } @Override public void mouseWheelMoved(MouseWheelEvent e) { if (e.getModifiersEx() == MouseEvent.CTRL_DOWN_MASK) { vv.getRenderContext() .getMultiLayerTransformer() .getTransformer(Layer.LAYOUT) .scale(1 + (e.getWheelRotation() * zoom_factor), 1 + (e.getWheelRotation() * zoom_factor), vv.getCenter()); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload