@Override public void run() { final RealRect selection = overlayService.getSelectionBounds(display); display.getCanvas().zoomToFit(selection); } });
private void attachOverlays(final ImageDisplay inputDisp, final ImageDisplay outputDisp, final List<Overlay> overlays) { final RealRect bounds = overlayService.getSelectionBounds(inputDisp); final double[] toOrigin = new double[2]; toOrigin[0] = -bounds.x; toOrigin[1] = -bounds.y; final List<Overlay> newOverlays = new ArrayList<>(); for (final Overlay overlay : overlays) { if (overlayWithinBounds(overlay, bounds)) { // add a reference to existing overlay? if (toOrigin[0] == 0 && toOrigin[1] == 0) { newOverlays.add(overlay); } else { // different origins means must create new overlays final Overlay newOverlay = overlay.duplicate(); newOverlay.move(toOrigin); newOverlays.add(newOverlay); } } } overlayService.addOverlays(outputDisp, newOverlays); }
@Override public ImageDisplay duplicateSelectedPlane(final ImageDisplay display) { final SamplingDefinition copyDef = SamplingDefinition.sampleXYPlane(display); final RealRect selection = overlayService.getSelectionBounds(display); final long minX = (long) selection.x; final long minY = (long) selection.y; final long maxX = (long) (selection.x + selection.width); final long maxY = (long) (selection.y + selection.height); final AxisSubrange xSubrange = new AxisSubrange(minX, maxX); final AxisSubrange ySubrange = new AxisSubrange(minY, maxY); copyDef.constrain(Axes.X, xSubrange); copyDef.constrain(Axes.Y, ySubrange); return createSampledImage(copyDef); }
@Override public ImageDisplay duplicateSelectedPlanes(final ImageDisplay display) { final SamplingDefinition copyDef = SamplingDefinition.sampleAllPlanes(display); final RealRect selection = overlayService.getSelectionBounds(display); final long minX = (long) selection.x; final long minY = (long) selection.y; final long maxX = (long) (selection.x + selection.width); final long maxY = (long) (selection.y + selection.height); final AxisSubrange xSubrange = new AxisSubrange(minX, maxX); final AxisSubrange ySubrange = new AxisSubrange(minY, maxY); copyDef.constrain(Axes.X, xSubrange); copyDef.constrain(Axes.Y, ySubrange); return createSampledImage(copyDef); }
@Override public ImageDisplay duplicateSelectedCompositePlane(final ImageDisplay display) { final SamplingDefinition copyDef = SamplingDefinition.sampleCompositeXYPlane(display); final RealRect selection = overlayService.getSelectionBounds(display); final long minX = (long) selection.x; final long minY = (long) selection.y; final long maxX = (long) (selection.x + selection.width); final long maxY = (long) (selection.y + selection.height); final AxisSubrange xSubrange = new AxisSubrange(minX, maxX); final AxisSubrange ySubrange = new AxisSubrange(minY, maxY); copyDef.constrain(Axes.X, xSubrange); copyDef.constrain(Axes.Y, ySubrange); return createSampledImage(copyDef); }