Changeset 2706


Ignore:
Timestamp:
04/30/07 11:31:46 (13 years ago)
Author:
curtis
Message:

Fix bugs in sub-C dimensions; simplify deprecated method implementations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/FileStitcher.java

    r2703 r2706  
    279279  /* @see IFormatReader#getChannelDimLengths() */ 
    280280  public int[] getChannelDimLengths() { 
    281     FormatTools.assertId(currentId, true, 2); 
    282     int sno = getSeries(); 
    283     int len = lenC[sno].length; 
    284     int[] cLengths = new int[len]; 
    285     System.arraycopy(lenC[sno], 0, cLengths, 0, len); 
    286     return cLengths; 
     281    FormatTools.assertId(currentId, true, 1); 
     282    return core.cLengths[getSeries()]; 
    287283  } 
    288284 
    289285  /* @see IFormatReader#getChannelDimTypes() */ 
    290286  public String[] getChannelDimTypes() { 
    291     FormatTools.assertId(currentId, true, 2); 
    292     int sno = getSeries(); 
    293     int len = lenC[sno].length; 
    294     String[] cTypes = new String[len]; 
    295     Arrays.fill(cTypes, FormatTools.CHANNEL); 
    296     return cTypes; 
     287    FormatTools.assertId(currentId, true, 1); 
     288    return core.cTypes[getSeries()]; 
    297289  } 
    298290 
     
    794786      core.thumbSizeX[i] = reader.getThumbSizeX(); 
    795787      core.thumbSizeY[i] = reader.getThumbSizeY(); 
    796       core.cLengths[i] = reader.getChannelDimLengths(); 
    797       core.cTypes[i] = reader.getChannelDimTypes(); 
     788      // NB: core.cLengths[i] populated in computeAxisLengths below 
     789      // NB: core.cTypes[i] populated in computeAxisLengths below 
    798790      core.currentOrder[i] = reader.getDimensionOrder(); 
    799791      // NB: core.orderCertain[i] populated below 
     
    819811      setSeries(i); 
    820812      core.currentOrder[i] = ag[i].getAdjustedOrder(); 
    821       core.orderCertain[i] = ag[getSeries()].isCertain(); 
     813      core.orderCertain[i] = ag[i].isCertain(); 
     814      computeAxisLengths(); 
    822815    } 
    823816    setSeries(oldSeries); 
     
    825818    // initialize used files list only when requested 
    826819    usedFiles = null; 
    827  
    828     computeAxisLengths(); 
    829820  } 
    830821 
     
    848839    lenC[sno][0] = sizeC[sno]; 
    849840    lenT[sno][0] = sizeT[sno]; 
    850     int z = 1, c = 1, t = 1; 
    851     for (int i=0; i<axes.length; i++) { 
     841    for (int i=0, z=1, c=1, t=1; i<axes.length; i++) { 
    852842      switch (axes[i]) { 
    853843        case AxisGuesser.Z_AXIS: 
     
    869859    } 
    870860 
     861    int[] cLengths = reader.getChannelDimLengths(); 
     862    String[] cTypes = reader.getChannelDimTypes(); 
     863    int cCount = 0; 
     864    for (int i=0; i<cLengths.length; i++) { 
     865      if (cLengths[i] > 1) cCount++; 
     866    } 
     867    for (int i=1; i<lenC[sno].length; i++) { 
     868      if (lenC[sno][i] > 1) cCount++; 
     869    } 
     870    core.cLengths[sno] = new int[cCount]; 
     871    core.cTypes[sno] = new String[cCount]; 
     872    int c = 0; 
     873    for (int i=0; i<cLengths.length; i++) { 
     874      if (cLengths[i] == 1) continue; 
     875      core.cLengths[sno][c] = cLengths[i]; 
     876      core.cTypes[sno][c] = cTypes[i]; 
     877      c++; 
     878    } 
     879    for (int i=1; i<lenC[sno].length; i++) { 
     880      if (lenC[sno][i] == 1) continue; 
     881      core.cLengths[sno][c] = lenC[sno][i]; 
     882      core.cTypes[sno][c] = FormatTools.CHANNEL; 
     883    } 
     884 
    871885    // populate metadata store 
    872886    int pixelType = getPixelType(); 
     
    10271041  public int getEffectiveSizeC(String id) throws FormatException, IOException { 
    10281042    setId(id); 
    1029     return getImageCount() / (getSizeZ() * getSizeT()); 
     1043    return getEffectiveSizeC(); 
    10301044  } 
    10311045 
     
    10411055  { 
    10421056    setId(id); 
    1043     int sno = getSeries(); 
    1044     int len = lenC[sno].length; 
    1045     int[] cLengths = new int[len]; 
    1046     System.arraycopy(lenC[sno], 0, cLengths, 0, len); 
    1047     return cLengths; 
     1057    return getChannelDimLengths(); 
    10481058  } 
    10491059 
     
    10531063  { 
    10541064    setId(id); 
    1055     int sno = getSeries(); 
    1056     int len = lenC[sno].length; 
    1057     String[] cTypes = new String[len]; 
    1058     Arrays.fill(cTypes, FormatTools.CHANNEL); 
    1059     return cTypes; 
     1065    return getChannelDimTypes(); 
    10601066  } 
    10611067 
     
    10631069  public int getThumbSizeX(String id) throws FormatException, IOException { 
    10641070    setId(id); 
    1065     return reader.getThumbSizeX(); 
     1071    return getThumbSizeX(); 
    10661072  } 
    10671073 
     
    10691075  public int getThumbSizeY(String id) throws FormatException, IOException { 
    10701076    setId(id); 
    1071     return reader.getThumbSizeY(); 
     1077    return getThumbSizeY(); 
    10721078  } 
    10731079 
     
    10751081  public boolean isLittleEndian(String id) throws FormatException, IOException { 
    10761082    setId(id); 
    1077     return reader.isLittleEndian(); 
     1083    return isLittleEndian(); 
    10781084  } 
    10791085 
     
    10831089  { 
    10841090    setId(id); 
    1085     return core.currentOrder[getSeries()]; 
     1091    return getDimensionOrder(); 
    10861092  } 
    10871093 
     
    10891095  public boolean isOrderCertain(String id) throws FormatException, IOException { 
    10901096    setId(id); 
    1091     return ag[getSeries()].isCertain(); 
     1097    return isOrderCertain(); 
    10921098  } 
    10931099 
     
    10951101  public boolean isInterleaved(String id) throws FormatException, IOException { 
    10961102    setId(id); 
    1097     return reader.isInterleaved(); 
     1103    return isInterleaved(); 
    10981104  } 
    10991105 
     
    11031109  { 
    11041110    setId(id); 
    1105     return reader.isInterleaved(subC); 
     1111    return isInterleaved(subC); 
    11061112  } 
    11071113 
     
    11491155  public int getSeriesCount(String id) throws FormatException, IOException { 
    11501156    setId(id); 
    1151     return reader.getSeriesCount(); 
     1157    return getSeriesCount(); 
    11521158  } 
    11531159 
     
    11551161  public void setSeries(String id, int no) throws FormatException, IOException { 
    11561162    setId(id); 
    1157     reader.setSeries(no); 
     1163    setSeries(no); 
    11581164  } 
    11591165 
     
    11611167  public int getSeries(String id) throws FormatException, IOException { 
    11621168    setId(id); 
    1163     return reader.getSeries(); 
     1169    return getSeries(); 
    11641170  } 
    11651171 
     
    11751181  { 
    11761182    setId(id); 
    1177     return FormatTools.getIndex(this, z, c, t); 
     1183    return getIndex(z, c, t); 
    11781184  } 
    11791185 
     
    11831189  { 
    11841190    setId(id); 
    1185     return FormatTools.getZCTCoords(this, index); 
     1191    return getZCTCoords(index); 
    11861192  } 
    11871193 
     
    11911197  { 
    11921198    setId(id); 
    1193     return reader.getMetadataValue(field); 
     1199    return getMetadataValue(field); 
    11941200  } 
    11951201 
     
    11971203  public Hashtable getMetadata(String id) throws FormatException, IOException { 
    11981204    setId(id); 
    1199     return reader.getMetadata(); 
     1205    return getMetadata(); 
    12001206  } 
    12011207 
     
    12051211  { 
    12061212    setId(id); 
    1207     return reader.getCoreMetadata(); 
     1213    return getCoreMetadata(); 
    12081214  } 
    12091215 
     
    12131219  { 
    12141220    setId(id); 
    1215     return reader.getMetadataStore(); 
     1221    return getMetadataStore(); 
    12161222  } 
    12171223 
     
    12211227  { 
    12221228    setId(id); 
    1223     return reader.getMetadataStoreRoot(); 
     1229    return getMetadataStoreRoot(); 
    12241230  } 
    12251231 
Note: See TracChangeset for help on using the changeset viewer.