Class RectangleStrategy

java.lang.Object
loci.formats.cache.CacheStrategy
loci.formats.cache.RectangleStrategy
All Implemented Interfaces:
Comparator, CacheReporter, ICacheStrategy

public class RectangleStrategy extends CacheStrategy
A rectangle strategy caches planes extending from the the current dimensional position along each axis and combination of axes. For example, if the current position is Z5-C2-T18, the strategy will preload the next and previous focal planes (Z6-C2-T18 and Z4-C2-T18), the next and previous channels (Z5-C3-T18 and Z5-C1-T18), the next and previous time points (Z5-C2-T19 and Z5-C2-T17), and all combinations thereof (Z6-C3-T18, Z6-C1-T18, Z4-C3-T18, Z4-C1-T18, Z6-C3-T19, etc.).

Planes closest to the current position are loaded first, with axes prioritized according to the cache strategy's priority settings.

To illustrate the rectangle strategy, here is a diagram showing a case in 2D with 35 dimensional positions (5Z x 7T). For both Z and T, order is centered, range is 2, and priority is normal. The numbers indicate the order planes will be cached, with "0" corresponding to the current dimensional position (Z2-T3).

      T  0  1  2  3  4  5  6
    Z /---------------------
    0 |    24 20  6 14 22
    1 |    18 12  2 10 16
    2 |     8  4  0  3  7
    3 |    17 11  1  9 15
    4 |    23 19  5 13 21
 
  • Constructor Details

    • RectangleStrategy

      public RectangleStrategy(int[] lengths)
      Constructs a rectangle strategy.
  • Method Details

    • getPossiblePositions

      protected int[][] getPossiblePositions()
      Description copied from class: CacheStrategy
      Gets positions to consider for possible inclusion in the cache, assuming a current position at the origin (0).
      Specified by:
      getPossiblePositions in class CacheStrategy