()
| 28 | } |
| 29 | |
| 30 | void addSlice() { |
| 31 | if (imp.isHyperStack() || imp.isComposite()) { |
| 32 | addHyperstackChannelSliceOrFrame(); |
| 33 | return; |
| 34 | } |
| 35 | if (!imp.lock()) return; |
| 36 | int id = 0; |
| 37 | ImageStack stack = imp.getStack(); |
| 38 | if (stack.size()==1) |
| 39 | id = imp.getID(); |
| 40 | ImageProcessor ip = imp.getProcessor(); |
| 41 | int n = imp.getCurrentSlice(); |
| 42 | if (IJ.altKeyDown()) n--; // insert in front of current slice |
| 43 | stack.addSlice(null, ip.createProcessor(width, height), n); |
| 44 | imp.setStack(null, stack); |
| 45 | imp.setSlice(n+1); |
| 46 | imp.unlock(); |
| 47 | imp.changes = true; |
| 48 | if (id!=0) IJ.selectWindow(id); // prevents macros from failing |
| 49 | } |
| 50 | |
| 51 | void deleteSlice() { |
| 52 | if (nSlices<2) |
no test coverage detected