/** Gets the reader appropriate for use with the given image plane. */ public IFormatReader getReader(int no) throws FormatException, IOException { if (noStitch) return reader; int[] q = computeIndices(no); int fno = q[0]; return getReader(getCoreIndex(), fno); }
@Override public boolean isThumbnailSeries() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.isThumbnailSeries() : core.get(getCoreIndex()).thumbnail; }
@Override public Hashtable<String, Object> getSeriesMetadata() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSeriesMetadata() : core.get(getCoreIndex()).seriesMetadata; }
@Override public int getImageCount() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getImageCount() : core.get(getCoreIndex()).imageCount; }
@Override public int getSizeZ() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeZ() : core.get(getCoreIndex()).sizeZ; }
@Override public boolean isRGB() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.isRGB() : core.get(getCoreIndex()).rgb; }
@Override public int getSizeY() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeY() : core.get(getCoreIndex()).sizeY; }
@Override public int getSizeZ() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeZ() : core.get(getCoreIndex()).sizeZ; }
@Override public String getDimensionOrder() { FormatTools.assertId(getCurrentFile(), true, 2); if (noStitch) return reader.getDimensionOrder(); return core.get(getCoreIndex()).dimensionOrder; }
@Override public boolean isOrderCertain() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.isOrderCertain() : core.get(getCoreIndex()).orderCertain; }
@Override public int getSizeT() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeT() : core.get(getCoreIndex()).sizeT; }
@Override public boolean isIndexed() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.isIndexed() : core.get(getCoreIndex()).indexed; }
@Override public int getSizeX() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getSizeX() : core.get(getCoreIndex()).sizeX; }
@Override public int getResolution() { FormatTools.assertId(getCurrentFile(), true, 2); int n = reader.getCoreMetadataList().size(); if (n > 1 || noStitch) return reader.getResolution(); if (hasFlattenedResolutions()) { return 0; } return getCoreIndex() - coreIndexToSeries(getCoreIndex()); }
@Override public int getThumbSizeX() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getThumbSizeX() : getReader(getCoreIndex(), 0).getThumbSizeX(); }
@Override public short[][] get16BitLookupTable() throws FormatException, IOException { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.get16BitLookupTable() : getReader(getCoreIndex(), 0).get16BitLookupTable(); }
@Override public byte[][] get8BitLookupTable() throws FormatException, IOException { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.get8BitLookupTable() : getReader(getCoreIndex(), 0).get8BitLookupTable(); }
@Override public int getThumbSizeY() { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getThumbSizeY() : getReader(getCoreIndex(), 0).getThumbSizeY(); }
@Override public boolean isInterleaved(int subC) { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.isInterleaved(subC) : getReader(getCoreIndex(), 0).isInterleaved(subC); }
@Override public int[] getZCTModuloCoords(int index) { FormatTools.assertId(getCurrentFile(), true, 2); return noStitch ? reader.getZCTModuloCoords(index) : FormatTools.getZCTCoords(core.get(getCoreIndex()).dimensionOrder, getSizeZ(), getEffectiveSizeC(), getSizeT(), getModuloZ().length(), getModuloC().length(), getModuloT().length(), getImageCount(), index); }