| An iterator for traversing a read-only image using arbitrary
up-down and left-right moves. This will generally be somewhat
slower than a corresponding instance of RectIter, since it must
perform bounds checks against the top and left edges of tiles in
addition to their bottom and right edges.
The iterator is initialized with a particular rectangle as its
bounds, which it is illegal to exceed. This initialization takes
place in a factory method and is not a part of the iterator
interface itself. Once initialized, the iterator may be reset to
its initial state by means of the startLine(), startPixels(), and
startBands() methods. As with RectIter, its position may be
advanced using the nextLine(), jumpLines(), nextPixel(),
jumpPixels(), and nextBand() methods.
In addition, prevLine(), prevPixel(), and prevBand() methods
exist to move in the upwards and leftwards directions and to access
smaller band indices. The iterator may be set to the far edges of
the bounding rectangle by means of the endLines(), endPixels(), and
endBands() methods.
The iterator's position may be tested against the bounding
rectangle by means of the finishedLines(), finishedPixels(), and
finishedBands() methods, as well as the hybrid methods
nextLineDone(), prevLineDone(), nextPixelDone(), prevPixelDone(),
nextBandDone(), and prevBandDone().
The getSample(), getSampleFloat(), and getSampleDouble()
methods are provided to allow read-only access to the source data.
The various source bands may also be accessed in random fashion
using the variants that accept a band index. The getPixel() methods
allow retrieval of all bands simultaneously.
An instance of RookIter may be obtained by means
of the RookIterFactory.create() method, which returns
an opaque object implementing this interface.
See Also: RectIter See Also: RookIterFactory |