public boolean[][] getPassableMap() {
		final boolean[][] result = new boolean[getMapHeight()][getMapWidth()];
		final byte[] bytes = ((DataBufferByte) mapImage.getRaster().getDataBuffer())
				.getData();
		final int w = getMapWidth();
		final int h = getMapHeight();
		for (int row = 0; row < h; row++) {
			final int offset = w * row;
			for (int col = 0; col < w; col++) {
				final byte alpha = bytes[4 * (offset + col)];
				// alpha < 128 ((alpha & 0xf) == 0) => passable
				// alpha >= 128 ((alpha & 0xf) != 0) => impassable
				if (((int) alpha & 0xf0) == 0) {
					result[row][col] = true;
				}
			}
		}
		return result;
	}