()
| 7992 | } |
| 7993 | |
| 7994 | private Variable doRoi() { |
| 7995 | interp.getToken(); |
| 7996 | if (interp.token!='.') |
| 7997 | interp.error("'.' expected"); |
| 7998 | interp.getToken(); |
| 7999 | if (!(interp.token==WORD||interp.token==PREDEFINED_FUNCTION)) |
| 8000 | interp.error("Function name expected: "); |
| 8001 | String name = interp.tokenString; |
| 8002 | if (name.equals("getDefaultStrokeWidth")) { |
| 8003 | interp.getParens(); |
| 8004 | return new Variable(Roi.getDefaultStrokeWidth()); |
| 8005 | } else if (name.equals("setDefaultStrokeWidth")) { |
| 8006 | Roi.setDefaultStrokeWidth(getArg()); |
| 8007 | return null; |
| 8008 | } else if (name.equals("getDefaultGroup")) { |
| 8009 | interp.getParens(); |
| 8010 | return new Variable(Roi.getDefaultGroup()); |
| 8011 | } else if (name.equals("setDefaultGroup")) { |
| 8012 | Roi.setDefaultGroup((int)getArg()); |
| 8013 | return null; |
| 8014 | } else if (name.equals("getGroupNames")) { |
| 8015 | String names = Roi.getGroupNames(); |
| 8016 | return new Variable(names!=null?names:""); |
| 8017 | } else if (name.equals("setGroupNames")) { |
| 8018 | Roi.setGroupNames(getStringArg()); |
| 8019 | return null; |
| 8020 | } else if (name.equals("getDefaultColor")) { |
| 8021 | interp.getParens(); |
| 8022 | Color color = Roi.getColor(); |
| 8023 | return new Variable(Colors.colorToString(color)); |
| 8024 | } |
| 8025 | ImagePlus imp = getImage(); |
| 8026 | if (name.equals("paste")) { |
| 8027 | interp.getParens(); |
| 8028 | //IJ.log("paste: "+roiClipboard); |
| 8029 | if (roiClipboard!=null) |
| 8030 | getImage().setRoi((Roi)roiClipboard.clone()); |
| 8031 | return null; |
| 8032 | } else if (name.equals("setPolygonSplineAnchors")) |
| 8033 | return setSplineAnchors(imp, false); |
| 8034 | else if (name.equals("setPolylineSplineAnchors")) |
| 8035 | return setSplineAnchors(imp, true); |
| 8036 | else if (name.equals("remove")||name.equals("selectNone")) { |
| 8037 | getImage().deleteRoi(); |
| 8038 | return null; |
| 8039 | } |
| 8040 | Roi roi = imp.getRoi(); |
| 8041 | if (name.equals("size")) { |
| 8042 | interp.getParens(); |
| 8043 | return new Variable(roi!=null?roi.size():0); |
| 8044 | } |
| 8045 | if (roi==null) |
| 8046 | interp.error("No selection"); |
| 8047 | if (name.equals("contains")) { |
| 8048 | int x = (int)Math.round(getFirstArg()); |
| 8049 | int y = (int)Math.round(getLastArg()); |
| 8050 | return new Variable(roi.contains(x,y)?1:0); |
| 8051 | } else if (name.equals("copy")) { |
no test coverage detected