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; } }