static void mergeSameSized(HillshadingBitmap center, HillshadingBitmap neighbor, HillshadingBitmap.Border border, int padding, Canvas copyCanvas) { HillshadingBitmap sink; HillshadingBitmap source; if (border == HillshadingBitmap.Border.EAST) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(sink.getWidth() - padding, padding, padding, sink.getHeight() - 2 * padding); copyCanvas.drawBitmap(source, (source.getWidth() - 2 * padding), 0); } else if (border == HillshadingBitmap.Border.WEST) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(0, padding, padding, sink.getHeight() - 2 * padding); copyCanvas.drawBitmap(source, 2 * padding - (source.getWidth()), 0); } else if (border == HillshadingBitmap.Border.NORTH) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(padding, 0, sink.getWidth() - 2 * padding, padding); copyCanvas.drawBitmap(source, 0, 2 * padding - (source.getHeight())); } else if (border == HillshadingBitmap.Border.SOUTH) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(padding, sink.getHeight() - padding, sink.getWidth() - 2 * padding, padding); copyCanvas.drawBitmap(source, 0, (source.getHeight() - 2 * padding)); } }
private void drawParentTileBitmap(Canvas canvas, Point point, Tile tile) { Tile cachedParentTile = getCachedParentTile(tile, 4); if (cachedParentTile != null) { Bitmap bitmap = this.tileCache.getImmediately(createJob(cachedParentTile)); if (bitmap != null) { int tileSize = this.displayModel.getTileSize(); long translateX = tile.getShiftX(cachedParentTile) * tileSize; long translateY = tile.getShiftY(cachedParentTile) * tileSize; byte zoomLevelDiff = (byte) (tile.zoomLevel - cachedParentTile.zoomLevel); float scaleFactor = (float) Math.pow(2, zoomLevelDiff); int x = (int) Math.round(point.x); int y = (int) Math.round(point.y); this.matrix.reset(); this.matrix.translate(x - translateX, y - translateY); this.matrix.scale(scaleFactor, scaleFactor); canvas.setClip(x, y, this.displayModel.getTileSize(), this.displayModel.getTileSize()); canvas.drawBitmap(bitmap, this.matrix, this.displayModel.getFilter()); canvas.resetClip(); bitmap.decrementRefCount(); } } }
static void mergeSameSized(HillshadingBitmap center, HillshadingBitmap neighbor, HillshadingBitmap.Border border, int padding, Canvas copyCanvas) { HillshadingBitmap sink; HillshadingBitmap source; if (border == HillshadingBitmap.Border.EAST) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(sink.getWidth() - padding, padding, padding, sink.getHeight() - 2 * padding); copyCanvas.drawBitmap(source, (source.getWidth() - 2 * padding), 0); } else if (border == HillshadingBitmap.Border.WEST) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(0, padding, padding, sink.getHeight() - 2 * padding); copyCanvas.drawBitmap(source, 2 * padding - (source.getWidth()), 0); } else if (border == HillshadingBitmap.Border.NORTH) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(padding, 0, sink.getWidth() - 2 * padding, padding); copyCanvas.drawBitmap(source, 0, 2 * padding - (source.getHeight())); } else if (border == HillshadingBitmap.Border.SOUTH) { sink = center; source = neighbor; copyCanvas.setBitmap(sink); copyCanvas.setClip(padding, sink.getHeight() - padding, sink.getWidth() - 2 * padding, padding); copyCanvas.drawBitmap(source, 0, (source.getHeight() - 2 * padding)); } }
private void drawParentTileBitmap(Canvas canvas, Point point, Tile tile) { Tile cachedParentTile = getCachedParentTile(tile, 4); if (cachedParentTile != null) { Bitmap bitmap = this.tileCache.getImmediately(createJob(cachedParentTile)); if (bitmap != null) { int tileSize = this.displayModel.getTileSize(); long translateX = tile.getShiftX(cachedParentTile) * tileSize; long translateY = tile.getShiftY(cachedParentTile) * tileSize; byte zoomLevelDiff = (byte) (tile.zoomLevel - cachedParentTile.zoomLevel); float scaleFactor = (float) Math.pow(2, zoomLevelDiff); int x = (int) Math.round(point.x); int y = (int) Math.round(point.y); this.matrix.reset(); this.matrix.translate(x - translateX, y - translateY); this.matrix.scale(scaleFactor, scaleFactor); canvas.setClip(x, y, this.displayModel.getTileSize(), this.displayModel.getTileSize()); canvas.drawBitmap(bitmap, this.matrix, this.displayModel.getFilter()); canvas.resetClip(); bitmap.decrementRefCount(); } } }