()
| 2500 | } |
| 2501 | |
| 2502 | private void rotate() { |
| 2503 | double xcenter = Double.NaN; |
| 2504 | double ycenter = Double.NaN; |
| 2505 | GenericDialog gd = new GenericDialog("Rotate"); |
| 2506 | gd.addNumericField("Angle:", angle, 2, 5, "degrees"); |
| 2507 | gd.addCheckbox("Rotate around image center", false); |
| 2508 | gd.showDialog(); |
| 2509 | if (gd.wasCanceled()) |
| 2510 | return; |
| 2511 | angle = gd.getNextNumber(); |
| 2512 | if (angle==0.0) |
| 2513 | return; |
| 2514 | boolean rotateAroundImageCenter = gd.getNextBoolean(); |
| 2515 | ImagePlus imp = WindowManager.getCurrentImage(); |
| 2516 | if (imp!=null && rotateAroundImageCenter) { |
| 2517 | xcenter = imp.getWidth()/2.0; |
| 2518 | ycenter = imp.getHeight()/2.0; |
| 2519 | } |
| 2520 | rotate(angle, xcenter, ycenter); |
| 2521 | if (record()) { |
| 2522 | if (Recorder.scriptMode()) { |
| 2523 | if (Double.isNaN(xcenter)) |
| 2524 | Recorder.recordCall("rm.rotate("+angle+");"); |
| 2525 | else |
| 2526 | Recorder.recordCall("rm.rotate("+angle+", "+xcenter+", "+ycenter+");"); |
| 2527 | } else { |
| 2528 | if (Double.isNaN(xcenter)) |
| 2529 | Recorder.recordString("RoiManager.rotate("+angle+");\n"); |
| 2530 | else |
| 2531 | Recorder.recordString("RoiManager.rotate("+angle+", "+xcenter+", "+ycenter+");\n"); |
| 2532 | } |
| 2533 | } |
| 2534 | } |
| 2535 | |
| 2536 | public void rotate(double angle) { |
| 2537 | rotate(angle, Double.NaN, Double.NaN); |
no test coverage detected