Revision 12767
trunk/libraries/libRaster/src/org/gvsig/raster/util/RasterUtilities.java | ||
---|---|---|
410 | 410 |
* @return Devuelve true si alguna parte de e1 cae fuera de ref y false si no tiene ninguna fuera. |
411 | 411 |
*/ |
412 | 412 |
public static boolean isOutside(Extent e1, Extent ref){ |
413 |
return ((e1.getMin().getX() < ref.getMin().getX()) || (e1.getMin().getY() < ref.getMin().getY()) ||
|
|
414 |
(e1.getMax().getX() > ref.getMax().getX()) || (e1.getMax().getY() > ref.getMax().getY()));
|
|
413 |
return ((e1.getMin().getX() > ref.getMax().getX()) || (e1.getMin().getY() > ref.getMax().getY()) ||
|
|
414 |
(e1.getMax().getX() < ref.getMin().getX()) || (e1.getMax().getY() < ref.getMin().getY()));
|
|
415 | 415 |
} |
416 | 416 |
|
417 | 417 |
/** |
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/io/MrSidNative.java | ||
---|---|---|
76 | 76 |
*/ |
77 | 77 |
public int nbands; |
78 | 78 |
/** |
79 |
* N?mero de overview actualmente seleccionada |
|
80 |
*/ |
|
81 |
private int currentOverview = -1; |
|
82 |
/** |
|
83 | 79 |
* Posici?n de la esquina superior izquierda en coordenadas pixel |
84 | 80 |
*/ |
85 | 81 |
private double currentViewY = -1; |
... | ... | |
259 | 255 |
//Ventana de la imagen. (en tama?o completo) |
260 | 256 |
//tl->esq sup izda en pixeles |
261 | 257 |
//br->esq inf der en pixeles |
262 |
Point2D tl = worldToRaster(new Point2D.Double(ulx, uly)); |
|
263 |
Point2D br = worldToRaster(new Point2D.Double(lrx, lry)); |
|
258 |
Point2D a = worldToRaster(new Point2D.Double(ulx, uly)); |
|
259 |
Point2D b = worldToRaster(new Point2D.Double(lrx, lry)); |
|
260 |
Point2D tl = new Point2D.Double(Math.min(a.getX(), b.getX()), Math.min(a.getY(), b.getY())); |
|
261 |
Point2D br = new Point2D.Double(Math.max(a.getX(), b.getX()), Math.max(a.getY(), b.getY())); |
|
264 | 262 |
|
265 | 263 |
//Ancho y alto de la im?gen (pixeles en pantalla) |
266 | 264 |
currentViewWidth = nWidth; |
... | ... | |
279 | 277 |
int[] dims = null; |
280 | 278 |
double zoom = 1.0; |
281 | 279 |
zoomoverview = 1.0; |
282 |
currentOverview = -1; |
|
283 | 280 |
|
284 | 281 |
if (WITH_OVERVIEWS && ((noverviews - 1) > 0)) { |
285 | 282 |
for (int i = (noverviews - 1); i > 0; i--) { |
... | ... | |
287 | 284 |
dims = this.getDimsAtMag(zoom); |
288 | 285 |
|
289 | 286 |
if (dims[0] > (this.getWidth() * viewportScaleX)) { |
290 |
currentOverview = i; |
|
291 | 287 |
zoomoverview = zoom; |
292 | 288 |
viewportScaleX /= zoomoverview; |
293 | 289 |
viewportScaleY /= zoomoverview; |
294 | 290 |
currentFullWidth = dims[0]; |
295 | 291 |
currentFullHeight = dims[1]; |
296 | 292 |
tl = worldToRaster(new Point2D.Double(ulx, uly)); |
293 |
br = worldToRaster(new Point2D.Double(lrx, lry)); |
|
294 |
tl.setLocation(Math.min(tl.getX(), br.getX()), Math.min(tl.getY(), br.getY())); |
|
297 | 295 |
overviewsTransformation[i].transform(tl, tl); |
298 | 296 |
//Hemos asignado currentFull solo para calcular tl en relaci?n al tama?o de la overview |
299 | 297 |
currentFullWidth = width; |
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/io/MrSidDriver.java | ||
---|---|---|
199 | 199 |
height = 1; |
200 | 200 |
|
201 | 201 |
setView(new Extent(ulx, uly, lrx, lry)); |
202 |
file.setView(viewRequest.minX(), viewRequest.maxY(), viewRequest.maxX(), viewRequest.minY(), width, height);
|
|
202 |
file.setView(viewRequest.getULX(), viewRequest.getULY(), viewRequest.getLRX(), viewRequest.getLRY(), width, height);
|
|
203 | 203 |
|
204 | 204 |
int[] pRGBArray = new int[width * height]; |
205 | 205 |
|
trunk/libraries/libRaster/src/org/gvsig/raster/grid/render/Rendering.java | ||
---|---|---|
197 | 197 |
geoImage = null; |
198 | 198 |
MultiRasterDataset dataset = bufferFactory.getMultiRasterDataset(); |
199 | 199 |
AffineTransform transf = dataset.getAffineTransform(); |
200 |
|
|
201 |
if(RasterUtilities.isOutside(vp.getExtent(), dataset.getExtent())) |
|
202 |
return; |
|
203 |
|
|
204 |
Extent adjustedRotedRequest = request(vp, dataset); |
|
200 | 205 |
|
201 |
Extent adjustedRotedRequest = request(vp, dataset); |
|
202 |
|
|
203 | 206 |
if ((widthImage <= 0) || (heightImage <= 0)) |
204 | 207 |
return; |
205 | 208 |
|
... | ... | |
342 | 345 |
//Convertimos la petici?n en coordenadas pixel a petici?n en coordenadas reales. |
343 | 346 |
Point2D ulWC = dataset.rasterToWorld(ulPxRequest); |
344 | 347 |
Point2D lrWC = dataset.rasterToWorld(lrPxRequest); |
345 |
|
|
348 |
|
|
346 | 349 |
//Ajustamos la petici?n a los limites del raster, teniendo en cuenta la rotaci?n de este. |
347 | 350 |
return new Extent(ulWC, lrWC); |
348 | 351 |
} |
Also available in: Unified diff