sclass AbstractFastRegions_ShuffledScan
is Steppable {
AbstractFastRegions
regionMaker;
WeightlessShuffledIterator iterator;
*(AbstractFastRegions
*regionMaker) {
regionMaker.init();
iterator = new WeightlessShuffledIterator(regionMaker.size);
}
public bool step() {
if (!iterator.hasNext())
false;
int pixel = iterator.nextIndex();
if (regionMaker.regionMatrix[pixel] == 0) {
regionMaker.runner = pixel;
regionMaker.makeRegion();
}
true;
}
// null if there are no more regions
public IImageRegion
nextRegion() {
var regionMatrix = regionMaker.regionMatrix;
while (iterator.hasNext()) {
int pixel = iterator.nextIndex();
if (regionMatrix[pixel] == 0) {
regionMaker.runner = pixel;
ret regionMaker.getRegion(regionMaker.makeRegion());
}
}
null;
}
}