@Override MutablePoint grabHandle(double x, double y, double maxDist, boolean shiftDown) { int activeHandleIndex = getClosestHandleIndex(handles, x, y, maxDist); if (activeHandleIndex >= 0) activeHandle = handles.get(activeHandleIndex); else activeHandle = null; return activeHandle; }
public void setROI(ROI pathROI, boolean stopTranslating) { // if (stopTranslating) // System.out.println("Stopping translating: " + stopTranslating + " - " + pathROI); if (this.pathROI == pathROI) return; if (isTranslating() && stopTranslating) { finishTranslation(); activeHandle = null; } this.pathROI = pathROI; if (pathROI instanceof RectangleROI) adjuster = new RectangleHandleAdjuster((RectangleROI)pathROI); else if (pathROI instanceof EllipseROI) adjuster = new EllipseHandleAdjuster((EllipseROI)pathROI); else if (pathROI instanceof PolygonROI) adjuster = new PolygonHandleAdjuster((PolygonROI)pathROI); else if (pathROI instanceof LineROI) adjuster = new LineHandleAdjuster((LineROI)pathROI); else if (pathROI instanceof PointsROI) adjuster = new PointsHandleAdjuster((PointsROI)pathROI); else { adjuster = null; return; } }
@Override public PointsROI requestNewHandle(double x, double y) { activeHandle = new MutablePoint(x, y); handles.add(activeHandle); roi = new PointsROI(createPoint2List(handles), roi.getC(), roi.getZ(), roi.getT()); ensureHandlesUpdated(); activeHandle = grabHandle(x, y, Double.POSITIVE_INFINITY, false); // ensureHandlesUpdated(); // activeHandle = grabHandle(x, y, 1, false); // ensureHandlesUpdated(); // activeHandle = roi.getNearest(x, y, 0.01); return roi; }
PointsHandleAdjuster(PointsROI roi) { this.roi = roi; ensureHandlesUpdated(); }
@Override PointsROI updateActiveHandleLocation(double xNew, double yNew, boolean shiftDown) { if (activeHandle == null) return roi; activeHandle.setLocation(xNew, yNew); roi = new PointsROI(createPoint2List(handles), roi.getC(), roi.getZ(), roi.getT()); ensureHandlesUpdated(); activeHandle = grabHandle(xNew, yNew, Double.POSITIVE_INFINITY, shiftDown); // System.err.println("Calling: " + activeHandle + " - " + (handles == null ? 0 : handles.size())); return roi; }