private final ZSamplePoint<TZ> closeSample(int x, int y) { ZSamplePoint<TZ> A = sampleGrid.getOrCreate(x, y); A.setZ( metric.closeSample( A.up() != null ? A.up().getZ() : null, A.down() != null ? A.down().getZ() : null, A.right() != null ? A.right().getZ() : null, A.left() != null ? A.left().getZ() : null)); return A; }