/** * Populate the coverage data values * * @param griddedTile * gridded tile * @param image * image * @param leftLastColumns * last columns in the tile to the left * @param topLeftRows * last rows of the tile to the top left * @param topRows * last rows of the tile to the top * @param pixelX * source x pixel * @param pixelY * source y pixel * @param values * values to populate */ private void populateValues(GriddedTile griddedTile, TImage image, Double[][] leftLastColumns, Double[][] topLeftRows, Double[][] topRows, CoverageDataSourcePixel pixelX, CoverageDataSourcePixel pixelY, Double[][] values) { populateValues(griddedTile, image, leftLastColumns, topLeftRows, topRows, pixelX.getMin(), pixelX.getMax(), pixelY.getMin(), pixelY.getMax(), values); }
/** * Get the Bilinear Interpolation coverage data value * * @param sourcePixelX * source pixel x * @param sourcePixelY * source pixel y * @param values * 2 x 2 coverage data values as [y][x] * @return coverage data value */ protected Double getBilinearInterpolationValue( CoverageDataSourcePixel sourcePixelX, CoverageDataSourcePixel sourcePixelY, Double[][] values) { return getBilinearInterpolationValue(sourcePixelX.getOffset(), sourcePixelY.getOffset(), sourcePixelX.getMin(), sourcePixelX.getMax(), sourcePixelY.getMin(), sourcePixelY.getMax(), values); }
float xDistance; if (xPixel.getOffset() > .5) { firstX = xPixel.getMax(); secondX = xPixel.getMin(); xDistance = 1.0f - xPixel.getOffset(); } else { firstX = xPixel.getMin(); secondX = xPixel.getMax(); xDistance = xPixel.getOffset(); float yDistance; if (yPixel.getOffset() > .5) { firstY = yPixel.getMax(); secondY = yPixel.getMin(); yDistance = 1.0f - yPixel.getOffset(); } else { firstY = yPixel.getMin(); secondY = yPixel.getMax(); yDistance = yPixel.getOffset(); results.add(new int[] { xPixel.getMin() - 1, yPixel.getMax() }); results.add(new int[] { xPixel.getMax(), yPixel.getMin() - 1 });