static bool[] markImageThroughLua(final RGBImage img, S lua) { Sandbox s = luaSandbox(); final int w = img.getWidth(), h = img.getHeight(); final bool[] mark = new bool[w*h]; s.setOuter("w", Lua.value(w)); s.setOuter("h", Lua.value(h)); s.setOuter("getInt", new TwoArgFunction { public LuaValue call(LuaValue x, LuaValue y) { ret LuaValue.valueOf(img.getInt(x.toint(), y.toint())); } }); s.setOuter("markPixel", new TwoArgFunction { public LuaValue call(LuaValue _x, LuaValue _y) { int x = _x.toint(), y = _y.toint(); if (x >= 0 && x < w && y >= 0 && y < h) mark[y*w+x] = true; ret Lua.NIL; } }); luaEval(s, lua); ret mark; }