Revision 12767

View differences:

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