public void drawRoiBrush(Graphics g) { g.setColor(ROIColor); int size = Toolbar.getBrushSize(); if (size==0 || ic==null) return; int flags = ic.getModifiers(); if ((flags&16)==0) return; // exit if mouse button up size = (int)(size*mag); Point p = ic.getCursorLoc(); int sx = ic.screenX(p.x); int sy = ic.screenY(p.y); g.drawOval(sx-size/2, sy-size/2, size, size); }
public void drawRoiBrush(Graphics g) { g.setColor(ROIColor); int size = Toolbar.getBrushSize(); if (size==0 || ic==null) return; int flags = ic.getModifiers(); if ((flags&16)==0) return; // exit if mouse button up size = (int)(size*mag); Point p = ic.getCursorLoc(); int sx = ic.screenX(p.x); int sy = ic.screenY(p.y); g.drawOval(sx-size/2, sy-size/2, size, size); }
protected void handleMouseUp(int screenX, int screenY) { state = NORMAL; if (imp==null) return; imp.draw(clipX-5, clipY-5, clipWidth+10, clipHeight+10); if (Recorder.record) { String method; if (type==OVAL) Recorder.record("makeOval", x, y, width, height); else if (!(this instanceof TextRoi)) { if (cornerDiameter==0) Recorder.record("makeRectangle", x, y, width, height); else { if (Recorder.scriptMode()) Recorder.recordCall("imp.setRoi(new Roi("+x+","+y+","+width+","+height+","+cornerDiameter+"));"); else Recorder.record("makeRectangle", x, y, width, height, cornerDiameter); } } } if (Toolbar.getToolId()==Toolbar.OVAL&&Toolbar.getBrushSize()>0) { int flags = ic!=null?ic.getModifiers():16; if ((flags&16)==0) // erase ROI Brush {imp.draw(); return;} } modifyRoi(); }
protected void handleMouseUp(int screenX, int screenY) { state = NORMAL; if (imp==null) return; imp.draw(clipX-5, clipY-5, clipWidth+10, clipHeight+10); if (Recorder.record) { String method; if (type==OVAL) Recorder.record("makeOval", x, y, width, height); else if (!(this instanceof TextRoi)) { if (cornerDiameter==0) Recorder.record("makeRectangle", x, y, width, height); else { if (Recorder.scriptMode()) Recorder.recordCall("imp.setRoi(new Roi("+x+","+y+","+width+","+height+","+cornerDiameter+"));"); else Recorder.record("makeRectangle", x, y, width, height, cornerDiameter); } } } if (Toolbar.getToolId()==Toolbar.OVAL&&Toolbar.getBrushSize()>0) { int flags = ic!=null?ic.getModifiers():16; if ((flags&16)==0) // erase ROI Brush {imp.draw(); return;} } modifyRoi(); }
@Override public void mouseDragged(final MouseEvent e) { final boolean selectionBrush = (Toolbar.getToolId() == Toolbar.OVAL && Toolbar.getBrushSize() > 0); // Keep reference to Roi in main canvas Roi oldMainRoi = null; final Image5DWindow win = (Image5DWindow) imp.getWindow(); if (win != null) { oldMainRoi = win.getImagePlus().getRoi(); } super.mouseDragged(e); adaptChannelMouse(); // Get new reference to Roi in main canvas Roi newMainRoi = null; if (win != null) { newMainRoi = win.getImagePlus().getRoi(); } // Work around special behaviour of some tools, that operate on the main // canvas and // not on the channel canvas, that receives the mousePressed event. if (oldMainRoi != newMainRoi || selectionBrush) { adaptChannelRois(false); } else { adaptChannelRois(true); } }
@Override public void mousePressed(final MouseEvent e) { final boolean selectionBrush = (Toolbar.getToolId() == Toolbar.OVAL && Toolbar.getBrushSize() > 0); setThisChannelAsCurrent(); // Keep reference to Roi in main canvas Roi oldMainRoi = null; final Image5DWindow win = (Image5DWindow) imp.getWindow(); if (win != null) { oldMainRoi = win.getImagePlus().getRoi(); } super.mousePressed(e); adaptChannelMouse(); // Get new reference to Roi in main canvas Roi newMainRoi = null; if (win != null) { newMainRoi = win.getImagePlus().getRoi(); } // Work around special behaviour of some tools, that operate on the main // canvas and // not on the channel canvas, that receives the mousePressed event. if (oldMainRoi != newMainRoi || selectionBrush) { adaptChannelRois(false); } else { adaptChannelRois(true); } }
public void run() { int size = Toolbar.getBrushSize(); ImagePlus img = WindowManager.getCurrentImage(); if (img==null) return; ImageCanvas ic = img.getCanvas(); if (ic==null) return; Roi roi = img.getRoi(); if (roi!=null && !roi.isArea()) img.deleteRoi(); Point p = ic.getCursorLoc(); if (roi!=null && !roi.contains(p.x, p.y)) mode = SUBTRACT; int flags; while (true) { p = ic.getCursorLoc(); if (p.equals(previousP)) {IJ.wait(1); continue;} previousP = p; flags = ic.getModifiers(); if ((flags&leftClick)==0) return; if ((flags&shift)!=0) mode = ADD; else if ((flags&alt)!=0) mode = SUBTRACT; if (mode==ADD) addCircle(img, p.x, p.y, size); else subtractCircle(img, p.x, p.y, size); } }
public void run() { int size = Toolbar.getBrushSize(); ImagePlus img = WindowManager.getCurrentImage(); if (img==null) return; ImageCanvas ic = img.getCanvas(); if (ic==null) return; Roi roi = img.getRoi(); if (roi!=null && !roi.isArea()) img.deleteRoi(); Point p = ic.getCursorLoc(); if (roi!=null && !roi.contains(p.x, p.y)) mode = SUBTRACT; int flags; while (true) { p = ic.getCursorLoc(); if (p.equals(previousP)) {IJ.wait(1); continue;} previousP = p; flags = ic.getModifiers(); if ((flags&leftClick)==0) return; if ((flags&shift)!=0) mode = ADD; else if ((flags&alt)!=0) mode = SUBTRACT; if (mode==ADD) addCircle(img, p.x, p.y, size); else subtractCircle(img, p.x, p.y, size); } }
if (Toolbar.getBrushSize()>0) new RoiBrush(); else
if (Toolbar.getBrushSize()>0) new RoiBrush(); else
private void addRoiToOverlay() { Roi roi = imp.getRoi(); if (roi==null) return; roi = (Roi)roi.clone(); if (imp.getStackSize()>1) { if (imp.isHyperStack()||imp.isComposite()) roi.setPosition(0, imp.getSlice(), imp.getFrame()); else roi.setPosition(imp.getCurrentSlice()); } if (roi.getName()==null) roi.setName(""+rt.size()); //roi.setName(IJ.getString("Label:", "m"+rt.size())); roi.setIgnoreClipRect(true); Overlay overlay = imp.getOverlay(); if (overlay==null) overlay = new Overlay(); if (drawLabels) overlay.drawLabels(true); if (!overlay.getDrawNames()) overlay.drawNames(true); overlay.setLabelColor(Color.white); overlay.drawBackgrounds(true); overlay.add(roi); imp.setOverlay(overlay); if (roi.getType()==Roi.COMPOSITE && Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0) imp.deleteRoi(); // delete ROIs created with the selection brush tool }
&& roi.getBounds().width==imp.getWidth() && roi.getBounds().height==imp.getHeight()) return false; if (Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0) Toolbar.getInstance().setTool(Toolbar.RECTANGLE); roi.setImage(null);
&& roi.getBounds().width==imp.getWidth() && roi.getBounds().height==imp.getHeight()) return false; if (Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0) Toolbar.getInstance().setTool(Toolbar.RECTANGLE); roi.setImage(null);
private void addRoiToOverlay() { Roi roi = imp.getRoi(); if (roi==null) return; roi = (Roi)roi.clone(); if (imp.getStackSize()>1) { if (imp.isHyperStack()||imp.isComposite()) roi.setPosition(0, imp.getSlice(), imp.getFrame()); else roi.setPosition(imp.getCurrentSlice()); } if (roi.getName()==null) roi.setName(""+rt.size()); //roi.setName(IJ.getString("Label:", "m"+rt.size())); roi.setIgnoreClipRect(true); Overlay overlay = imp.getOverlay(); if (overlay==null) overlay = new Overlay(); if (drawLabels) overlay.drawLabels(true); if (!overlay.getDrawNames()) overlay.drawNames(true); overlay.setLabelColor(Color.white); overlay.drawBackgrounds(true); overlay.add(roi); imp.setOverlay(overlay); if (roi.getType()==Roi.COMPOSITE && Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0) imp.deleteRoi(); // delete ROIs created with the selection brush tool }
overlay.add(roi); imp.setOverlay(overlay); boolean brushRoi = roi.getType()==Roi.COMPOSITE && Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0; if (points || (roi instanceof ImageRoi) || (roi instanceof Arrow&&!Prefs.keepArrowSelections) || brushRoi) imp.deleteRoi();
overlay.add(roi); imp.setOverlay(overlay); boolean brushRoi = roi.getType()==Roi.COMPOSITE && Toolbar.getToolId()==Toolbar.OVAL && Toolbar.getBrushSize()>0; if (points || (roi instanceof ImageRoi) || (roi instanceof Arrow&&!Prefs.keepArrowSelections) || brushRoi) imp.deleteRoi();