dstAccessor.copyDataToRaster();
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor s = new RasterAccessor(sources[0], destRect, formatTags[0], getSourceImage(0).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[1], getColorModel()); switch (d.getDataType()) { case 0: // '\0' computeRectByte(s, d, oldValue.byteValue(), newValue.byteValue()); break; case 1: // '\001' case 2: // '\002' computeRectShort(s, d, oldValue.shortValue(), newValue.shortValue()); break; case 3: // '\003' computeRectInt(s, d, oldValue.intValue(), newValue.intValue()); break; case 4: // '\004' computeRectFloat(s, d, oldValue.floatValue(), newValue.floatValue()); break; case 5: // '\005' computeRectDouble(s, d, oldValue.doubleValue(), newValue.doubleValue()); break; } d.copyDataToRaster(); }
@Override protected void computeRect(PlanarImage[] sources, WritableRaster dest, Rectangle destRect) { // System.out.println("WarpSourceCoordinatesOpImage "+destRect); // long t1 = System.currentTimeMillis(); RasterAccessor dst = new RasterAccessor(dest, destRect, rasterFormatTag, getColorModel()); computeRectFloat(dst); if (dst.isDataCopy()) { dst.clampDataArrays(); dst.copyDataToRaster(); } // long t2 = System.currentTimeMillis(); // System.out.println("WarpSourceCoordinatesOpImage "+(t2-t1)); }
@Override protected void computeRect(PlanarImage[] sources, WritableRaster dest, Rectangle destRect) { // System.out.println("WarpSourceCoordinatesOpImage "+destRect); // long t1 = System.currentTimeMillis(); RasterAccessor dst = new RasterAccessor(dest, destRect, rasterFormatTag, getColorModel()); computeRectFloat(dst); if (dst.isDataCopy()) { dst.clampDataArrays(); dst.copyDataToRaster(); } // long t2 = System.currentTimeMillis(); // System.out.println("WarpSourceCoordinatesOpImage "+(t2-t1)); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterAccessor s = new RasterAccessor(sources[0], destRect, srcDestFormatTags[0], getSourceImage(0).getColorModel()); RasterAccessor m = new RasterAccessor(sources[1], destRect, maskFormatTag, getSourceImage(1).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, srcDestFormatTags[1], getColorModel()); switch (d.getDataType()) { case 0: // '\0' computeRectByte(s, m, d, fillValue.byteValue()); break; case 1: // '\001' case 2: // '\002' computeRectShort(s, m, d, fillValue.shortValue()); break; case 3: // '\003' computeRectInt(s, m, d, fillValue.intValue()); break; case 4: // '\004' computeRectFloat(s, m, d, fillValue.floatValue()); break; case 5: // '\005' computeRectDouble(s, m, d, fillValue.doubleValue()); break; } d.copyDataToRaster(); }
private void computeRect(final Raster sources, final WritableRaster destinationRaster, final Rectangle destRect) { // Clear the background and return if no sources. if (sources == null) { ImageUtil.fillBackground(destinationRaster, destRect, backgroundValues); return; } // Determine the format tag id. final SampleModel[] sourceSM = new SampleModel[] { sources.getSampleModel() }; final int formatTagID = RasterAccessor.findCompatibleTag(sourceSM, destinationRaster.getSampleModel()); // Create dest accessor. final RasterAccessor rasterAccessor = new RasterAccessor(destinationRaster, destRect, new RasterFormatTag(destinationRaster.getSampleModel(), formatTagID), null); final int dataType = rasterAccessor.getDataType(); // Branch to data type-specific method. switch (dataType) { case DataBuffer.TYPE_BYTE: computeRect(rasterAccessor); break; default: throw new UnsupportedOperationException("The following datatype isn't actually supported " + dataType); } rasterAccessor.copyDataToRaster(); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor s = new RasterAccessor(sources[0], destRect, formatTags[0], getSourceImage(0).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[1], getColorModel()); switch (d.getDataType()) { case 4: // '\004' computeRectFloat(s, d); break; case 5: // '\005' computeRectDouble(s, d); break; } d.copyDataToRaster(); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor s = new RasterAccessor(sources[0], destRect, formatTags[0], getSourceImage(0).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[1], getColorModel()); switch (d.getDataType()) { case 4: // '\004' computeRectFloat(s, d, (float) replacementValue); break; case 5: // '\005' computeRectDouble(s, d, replacementValue); break; } d.copyDataToRaster(); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor s = new RasterAccessor(sources[0], destRect, formatTags[0], getSourceImage(0).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[1], getColorModel()); switch (d.getDataType()) { case 4: // '\004' computeRectFloat(s, d); break; case 5: // '\005' computeRectDouble(s, d); break; } d.copyDataToRaster(); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor s = new RasterAccessor(sources[0], destRect, formatTags[0], getSourceImage(0).getColorModel()); RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[1], getColorModel()); switch (d.getDataType()) { case 4: // '\004' computeRectFloat(s, d, (float) replacementValue); break; case 5: // '\005' computeRectDouble(s, d, replacementValue); break; } d.copyDataToRaster(); }
private void doLookup(RasterAccessor srcAcc, RasterAccessor destAcc, RandomIter roiIter, boolean roiContainsTile) { switch (destAcc.getDataType()) { case DataBuffer.TYPE_BYTE: lookupAsByteData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_INT: lookupAsIntData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_SHORT: lookupAsShortData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_USHORT: lookupAsUShortData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_FLOAT: lookupAsFloatData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_DOUBLE: lookupAsDoubleData(srcAcc, destAcc, roiIter, roiContainsTile); break; } if (destAcc.isDataCopy()) { destAcc.clampDataArrays(); destAcc.copyDataToRaster(); } }
private void doLookup(RasterAccessor srcAcc, RasterAccessor destAcc) { switch (destAcc.getDataType()) { case DataBuffer.TYPE_BYTE: lookupAsByteData(srcAcc, destAcc); break; case DataBuffer.TYPE_INT: lookupAsIntData(srcAcc, destAcc); break; case DataBuffer.TYPE_SHORT: lookupAsShortData(srcAcc, destAcc); break; case DataBuffer.TYPE_USHORT: lookupAsUShortData(srcAcc, destAcc); break; case DataBuffer.TYPE_FLOAT: lookupAsFloatData(srcAcc, destAcc); break; case DataBuffer.TYPE_DOUBLE: lookupAsDoubleData(srcAcc, destAcc); break; } if (destAcc.isDataCopy()) { destAcc.clampDataArrays(); destAcc.copyDataToRaster(); } }
private void doLookup(RasterAccessor srcAcc, RasterAccessor destAcc, RandomIter roiIter, boolean roiContainsTile) { switch (destAcc.getDataType()) { case DataBuffer.TYPE_BYTE: lookupAsByteData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_INT: lookupAsIntData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_SHORT: lookupAsShortData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_USHORT: lookupAsUShortData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_FLOAT: lookupAsFloatData(srcAcc, destAcc, roiIter, roiContainsTile); break; case DataBuffer.TYPE_DOUBLE: lookupAsDoubleData(srcAcc, destAcc, roiIter, roiContainsTile); break; } if (destAcc.isDataCopy()) { destAcc.clampDataArrays(); destAcc.copyDataToRaster(); } }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterFormatTag[] formatTags = getFormatTags(); RasterAccessor[] sourceRasterAccessors = new RasterAccessor[sources.length]; for (int i = 0; i < sources.length; i++) { sourceRasterAccessors[i] = new RasterAccessor(sources[i], destRect, formatTags[i], getSourceImage(i).getColorModel()); } RasterAccessor d = new RasterAccessor(dest, destRect, formatTags[sources.length], getColorModel()); switch (d.getDataType()) { case DataBuffer.TYPE_FLOAT: computeRectFloat(sourceRasterAccessors, d); break; case DataBuffer.TYPE_DOUBLE: computeRectDouble(sourceRasterAccessors, d); break; default: throw new OperatorException("Unable to compute raster for non floating number data type"); } d.copyDataToRaster(); }
@Override protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) { RasterAccessor latAcc = new RasterAccessor(sources[0], destRect, latRasterFormatTag, getSourceImage(0).getColorModel()); RasterAccessor lonAcc = new RasterAccessor(sources[1], destRect, lonRasterFormatTag, getSourceImage(1).getColorModel()); RasterAccessor maskAcc = null; if (maskRasterFormatTag != null) { maskAcc = new RasterAccessor(sources[2], destRect, maskRasterFormatTag, getSourceImage(2).getColorModel()); } RasterAccessor destAcc = new RasterAccessor(dest, destRect, targetRasterFormatTag, getColorModel()); if (latAcc.getDataType() == DataBuffer.TYPE_DOUBLE) { processDoubleLoop(latAcc, lonAcc, maskAcc, destAcc, destRect); } else if (latAcc.getDataType() == DataBuffer.TYPE_FLOAT) { processFloatLoop(latAcc, lonAcc, maskAcc, destAcc, destRect); } else { throw new IllegalStateException("unsupported data type: " + latAcc.getDataType()); } destAcc.copyDataToRaster(); }