protected int[] getSourceCoords(final int sourceLength, final int targetLength) { final int[] sourceCoords = new int[targetLength]; for (int i = 0; i < targetLength; i++) { sourceCoords[i] = getSourceCoord(i, 0, sourceLength - 1); } return sourceCoords; }
private String getImageComment(RenderedImage image) { if (image instanceof RasterDataNodeOpImage) { RasterDataNodeOpImage rdnoi = (RasterDataNodeOpImage) image; return rdnoi.getRasterDataNode().getName(); } else if (image instanceof VirtualBandOpImage) { VirtualBandOpImage vboi = (VirtualBandOpImage) image; return vboi.getExpression(); } else { final String s = image.toString(); final int p1 = s.indexOf('['); final int p2 = s.indexOf(']', p1 + 1); if (p1 > 0 && p2 > p1) { return s.substring(p1 + 1, p2 - 1); } return s; } }
protected RasterDataNodeOpImage(RasterDataNode rasterDataNode, ResolutionLevel level) { super(ImageManager.getDataBufferType(rasterDataNode.getDataType()), rasterDataNode.getSceneRasterWidth(), rasterDataNode.getSceneRasterHeight(), getPreferredTileSize(rasterDataNode), null, level); this.rasterDataNode = rasterDataNode; }
@Override protected void computeRect(PlanarImage[] sourceImages, WritableRaster tile, Rectangle destRect) { ProductData productData; boolean directMode = tile.getDataBuffer().getSize() == destRect.width * destRect.height; if (directMode) { productData = ProductData.createInstance(rasterDataNode.getDataType(), ImageUtils.getPrimitiveArray(tile.getDataBuffer())); } else { productData = ProductData.createInstance(rasterDataNode.getDataType(), destRect.width * destRect.height); } try { computeProductData(productData, destRect); } catch (IOException e) { throw new RuntimeException(e); } if (!directMode) { tile.setDataElements(destRect.x, destRect.y, destRect.width, destRect.height, productData.getElems()); } }