/** Ensures the position of the relevant axis is within the legal range. */ private void clampPosition() { if (axis == null) return; final long pos = display.getLongPosition(axis); if (pos < first || pos > last) { display.setPosition(first, axis); } }
/** * Updates the given {@link ImagePlus}'s position to match that of its * paired {@link ImageDisplay}. */ @Override public void updateLegacyImage(ImageDisplay disp, ImagePlus imp) { // When this is called we know that we have a IJ1 compatible display. So we // can make assumptions about dimensional sizes re: safe casting. final int cPos = (int) calcIJ1ChannelPos(disp); final int zPos = (int) disp.getLongPosition(Axes.Z); final int tPos = (int) disp.getLongPosition(Axes.TIME); imp.setPosition(cPos+1, zPos+1, tPos+1); }
private void fillIndex(ImageDisplay disp, AxisType axis, long[] workspace) { final int index = disp.dimensionIndex(axis); if (index != -1) workspace[index] = disp.getLongPosition(index); } }
private synchronized void updatePosition() { long currPos = display.getLongPosition(axis); isRelative ? display.getLongPosition(axis) + delta : delta; display.setPosition(pos, axis);
private void updateAxis(final AxisType axis) { final int value = (int) display.getLongPosition(axis); if (axis == Axes.CHANNEL) updateColorBar(value); final JScrollBar scrollBar = axisSliders.get(axis); if (scrollBar != null) scrollBar.setValue(value); getDisplay().update(); }
private long calcIJ1ChannelPos(ImageDisplay disp) { final long[] dims = Intervals.dimensionsAsLongArray(disp); final AxisType[] axes = SpaceUtils.getAxisTypes(disp); final long[] pos = new long[axes.length]; for (int i = 0; i < axes.length; i++) pos[i] = disp.getLongPosition(i); return LegacyUtils.calcIJ1ChannelPos(dims, axes, pos); }
@EventHandler protected void onEvent(LUTsChangedEvent event) { if (!getDisplay().contains(event.getView())) return; final int value = (int) display.getLongPosition(Axes.CHANNEL); updateColorBar(value); }
@Override public boolean contains(Point2D.Double pt) { int d = dataset.numDimensions(); if ((tmpPos == null) || (tmpPos.length != d)) tmpPos = new double[d]; tmpPos[0] = pt.x; tmpPos[1] = pt.y; for (int i = 2; i < tmpPos.length; i++) { AxisType axisType = dataset.axis(i).type(); tmpPos[i] = display.getLongPosition(axisType); } return overlay.getRegionOfInterest().contains(tmpPos); }
final int value = (int) display.getLongPosition(axis);
private PointSet getViewedPlane() { long[] pt1 = new long[dataset.numDimensions()]; long[] pt2 = pt1.clone(); pt2[0] = dataset.dimension(0) - 1; pt2[1] = dataset.dimension(1) - 1; for (int i = 2; i < pt1.length; i++) { AxisType axisType = dataset.axis(i).type(); pt1[i] = pt2[i] = display.getLongPosition(axisType); } return new HyperVolumePointSet(pt1, pt2); } }
/** * When a tool creates an overlay, add the overlay/figure combo to an * {@link OverlayFigureView}. */ @EventHandler protected void onEvent(final FigureCreatedEvent event) { final ImageDisplay display = event.getDisplay(); if (display != getDisplay()) return; // not this canvas's display final OverlayView overlay = event.getView(); for (int i = 0; i < display.numDimensions(); i++) { final AxisType axisType = display.axis(i).type(); if (axisType.isXY()) continue; if (overlay.getData().dimensionIndex(axisType) < 0) { overlay.setPosition(display.getLongPosition(axisType), axisType); } } if (drawingView.getSelectedFigures().contains(event.getFigure())) { overlay.setSelected(true); } final OverlayFigureView figureView = new OverlayFigureView(displayViewer, overlay, event.getFigure()); figureViews.add(figureView); display.add(overlay); display.update(); }
final long pos = display.getLongPosition(axisType); final AxisSubrange subrange = new AxisSubrange(pos); definition.constrain(axisType, subrange);
/** * A convenience method for defining a SamplingDefinition that returns a * single UV plane of an ImageDisplay. U and V are defined by the user. * * @param display The ImageDisplay to sample * @param uAxis The U axis of the sample space * @param vAxis The V axis of the sample space * @return The specified SamplingDefinition */ public static SamplingDefinition sampleUVPlane(final ImageDisplay display, final AxisType uAxis, final AxisType vAxis) { final SamplingDefinition definition = new SamplingDefinition(display); final Data data = display.getActiveView().getData(); for (int i = 0; i < data.numDimensions(); i++) { AxisType axisType = data.axis(i).type(); if ((axisType == uAxis) || (axisType == vAxis)) { final int axisIndex = display.dimensionIndex(axisType); final long size = display.dimension(axisIndex); final AxisSubrange subrange = new AxisSubrange(0, size - 1); definition.constrain(axisType, subrange); } else { // other axis final long pos = display.getLongPosition(axisType); final AxisSubrange subrange = new AxisSubrange(pos); definition.constrain(axisType, subrange); } } return definition; }