Interface WritableRookIter

All Superinterfaces:
RectIter, RookIter, WritableRectIter

public interface WritableRookIter
extends RookIter, WritableRectIter

An iterator for traversing a read/write 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 botton 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.

WritableRookIter adds the ability to alter the source pixel values using the various setSample() and setPixel() methods. These methods are inherited from the WritableRectIter interface unchanged.

An instance of WritableRookIter may be obtained by means of the RookIterFactory.createWritable() method, which returns an opaque object implementing this interface.

Note that a WritableRookIter inherits multiply from RookIter and WritableRectIter, and so may be passed into code expecting either interface. WritableRookIter in fact adds no methods not found in one of its parent interfaces.

See Also:
RookIter, WritableRectIter, RookIterFactory

Methods inherited from interface
endBands, endLines, endPixels, prevBand, prevBandDone, prevLine, prevLineDone, prevPixel, prevPixelDone
Methods inherited from interface
finishedBands, finishedLines, finishedPixels, getPixel, getPixel, getPixel, getSample, getSample, getSampleDouble, getSampleDouble, getSampleFloat, getSampleFloat, jumpLines, jumpPixels, nextBand, nextBandDone, nextLine, nextLineDone, nextPixel, nextPixelDone, startBands, startLines, startPixels
Methods inherited from interface
setPixel, setPixel, setPixel, setSample, setSample, setSample, setSample, setSample, setSample