public MapMesh getcut(Coord cc) { Cut cut = geticut(cc); if (cut.dmesh != null) { if (cut.dmesh.done() || (cut.mesh == null)) { cut.mesh = cut.dmesh.get(); cut.dmesh = null; } } return (cut.mesh); }
private void buildcut(final Coord cc) { final Cut cut = geticut(cc); final int deftag = ++cut.deftag; cut.dmesh = Defer.later( new Defer.Callable<MapMesh>() { public MapMesh call() { Random rnd = new Random(id); rnd.setSeed(rnd.nextInt() ^ cc.x); rnd.setSeed(rnd.nextInt() ^ cc.y); return (MapMesh.build(MCache.this, rnd, ul.add(cc.mul(cutsz)), cutsz)); } }); }