@Override public void mouseDragged(MouseEvent e) { if (base.dimension == 2) { mouseDraggingX = e.getX(); mouseDraggingY = e.getY(); repaint(); } else if (base.dimension == 3) { graphics.rotate(e.getX() - mouseClickX, e.getY() - mouseClickY); mouseClickX = e.getX(); mouseClickY = e.getY(); repaint(); } e.consume(); }
repaint(); e.consume();
graphics.projection.reset(); baseGrid.setBase(base); repaint(); } else { String tooltip = null;
@Override public void mouseWheelMoved(MouseWheelEvent e) { if (e.getWheelRotation() == 0) { return; } for (int i = 0; i < base.dimension; i++) { int s = baseGrid.getAxis(i).getLinearSlices(); double r = e.getWheelRotation() > 0 ? 1.0 / s : -1.0 / s; if (r > -0.5) { double d = (base.upperBound[i] - base.lowerBound[i]) * r; base.lowerBound[i] -= d; base.upperBound[i] += d; } } for (int i = 0; i < base.dimension; i++) { base.setPrecisionUnit(i); } base.initBaseCoord(); graphics.projection.reset(); baseGrid.setBase(base); repaint(); e.consume(); }
/** * Zooms in/out the plot. * @param inout true if zoom in. Otherwise, zoom out. */ public void zoom(boolean inout) { for (int i = 0; i < base.dimension; i++) { int s = baseGrid.getAxis(i).getLinearSlices(); double r = inout ? -1.0 / s : 1.0 / s; double d = (base.upperBound[i] - base.lowerBound[i]) * r; base.lowerBound[i] -= d; base.upperBound[i] += d; } for (int i = 0; i < base.dimension; i++) { base.setPrecisionUnit(i); } base.initBaseCoord(); graphics.projection.reset(); baseGrid.setBase(base); canvas.repaint(); }
/** * Resets the plot. */ public void reset() { base.reset(); graphics.projection.reset(); baseGrid.setBase(base); if (graphics.projection instanceof Projection3D) { ((Projection3D) graphics.projection).setDefaultView(); } canvas.repaint(); }
@Override public void componentResized(ComponentEvent e) { if (graphics != null) { base.initBaseCoord(); graphics.projection.reset(); baseGrid.setBase(base); } repaint(); }