!include once #1027304 // eclipse collections import org.eclipse.collections.impl.map.mutable.primitive.*; static IBWImage lazyBWImage(int w, int h, IF2 getFloatPixel) { ret new IBWImage { new IntFloatHashMap knownPixels; public int getWidth() { ret w; } public int getHeight() { ret h; } public float getFloatPixel(int x, int y) { int i = x*w+h; Float f = knownPixels.getIfAbsent(i, Float.NaN); if (!isNaN(f)) ret f; knownPixels.put(i, f = getFloatPixel.get(x, y)); ret f; } }; }