Revision 12490
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/MultiRasterDataset.java | ||
---|---|---|
390 | 390 |
|
391 | 391 |
//Reservamos memoria para los buffers por dataset |
392 | 392 |
IBuffer[] bufferDatasets = mallocBuffersDatasets(bandList, width, height); |
393 |
|
|
394 |
//Si hemos redondeado los pixeles de la petici?n (p1 y p2) por arriba y por abajo deberemos calcular un extent mayor |
|
395 |
//equivalente a los pixeles redondeados. |
|
396 |
Point2D wc1 = ((RasterDataset)files.get(0)).rasterToWorld(new Point2D.Double(Math.floor(p1.getX()), Math.floor(p1.getY()))); |
|
397 |
Point2D wc2 = ((RasterDataset)files.get(0)).rasterToWorld(new Point2D.Double(Math.ceil(p2.getX()), Math.ceil(p2.getY()))); |
|
393 | 398 |
for(int i = 0; i < getDatasetCount(); i++) |
394 |
bufferDatasets[i] = ((RasterDataset)files.get(i)).getWindowRaster(x, y, w, h, bandList, bufferDatasets[i], adjustToExtent); |
|
399 |
bufferDatasets[i] = ((RasterDataset)files.get(i)).getWindowRaster(wc1.getX(), wc1.getY(), Math.abs(wc2.getX() - wc1.getX()), Math.abs(wc2.getY() - wc1.getY()), bandList, bufferDatasets[i], adjustToExtent); |
|
400 |
//bufferDatasets[i] = ((RasterDataset)files.get(i)).getWindowRaster(x, y, w, h, bandList, bufferDatasets[i], adjustToExtent); |
|
395 | 401 |
|
396 | 402 |
//Mezclamos los buffers de cada dataset en un solo buffer |
397 | 403 |
mergeBuffers(raster, bufferDatasets, bandList); |
Also available in: Unified diff