Revision 1938 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/provider/DefaultRasterProvider.java

View differences:

DefaultRasterProvider.java
27 27
import java.awt.geom.Point2D;
28 28
import java.io.File;
29 29
import java.security.NoSuchAlgorithmException;
30
import java.util.ArrayList;
31 30
import java.util.Collection;
32 31
import java.util.Date;
33 32
import java.util.Iterator;
33
import java.util.List;
34 34

  
35 35
import org.cresques.cts.IProjection;
36 36
import org.gvsig.compat.net.ICancellable;
......
147 147
	protected String                          uri;
148 148
	protected String                          selectedSubdatasetID   = null;
149 149
	/**
150
	 * Transformaci?n creada a partir de la informaci?n de georreferencia de la
151
	 * propia imagen. Esta informaci?n est? en la cabecera o en ficheros
150
	 * Transformaci�n creada a partir de la informaci�n de georreferencia de la
151
	 * propia imagen. Esta informaci�n est� en la cabecera o en ficheros
152 152
	 * worldfile.
153 153
	 */
154 154
	protected AffineTransform                 ownTransformation      = null;
155 155
	/**
156
	 * Transformaci?n asignada de forma externa, bien desde el fichero rmf o
156
	 * Transformacin asignada de forma externa, bien desde el fichero rmf o
157 157
	 * asignada directamente por el usuario.
158 158
	 */
159 159
	protected AffineTransform                 externalTransformation = null;
......
211 211
	}
212 212
	
213 213
	/**
214
	 * Acciones de inicilizaci?n comunes a todos los drivers.
215
	 * Este m?todo debe ser llamado explicitamente por el constructor de cada driver.
216
	 * Estas son acciones de inicializaci?n que se ejecutan despu?s del constructor de cada driver.
214
	 * Acciones de inicilizacin comunes a todos los drivers.
215
	 * Este mtodo debe ser llamado explicitamente por el constructor de cada driver.
216
	 * Estas son acciones de inicializaci�n que se ejecutan despu�s del constructor de cada driver.
217 217
	 * Las acciones que hayan de ser realizadas antes se definen en el constructor de RasterDataset.
218 218
	 */
219 219
	protected void init() {
......
270 270
		
271 271
		//Gets the list of provider's name to manage the file
272 272
		File file = new File(param);
273
		ArrayList<String> provName = serverExplorer.getProviderNameList(file);
273
		List<String> provName = serverExplorer.getProviderNameList(file);
274 274
		if(provName.size() > 0) {
275 275
			for (int i = 0; i < provName.size(); i++) {
276 276
				//Gets the first provider what is not a TileProvider
......
325 325

  
326 326
	/**
327 327
	 * Obtiene el valor del raster en la coordenada que se le pasa.
328
	 * El valor ser? Double, Int, Byte, etc. dependiendo del tipo de
328
	 * El valor ser Double, Int, Byte, etc. dependiendo del tipo de
329 329
	 * raster.
330 330
	 * @param x	coordenada X
331 331
	 * @param y coordenada Y
......
380 380
	 * @throws ProcessInterruptedException
381 381
	 * @throws RasterDriverException
382 382
	 */
383
	 abstract protected void getWindow(Extent ex, int bufWidth, int bufHeight, 
383
	 abstract public void getWindow(Extent ex, int bufWidth, int bufHeight, 
384 384
			 BandList bandList, TileListener listener, TaskStatus taskStatus) throws ProcessInterruptedException, RasterDriverException;
385 385
	
386 386
	/**
387 387
	 * Obtiene una ventana de datos de la imagen a partir de coordenadas reales.
388
	 * No aplica supersampleo ni subsampleo sino que devuelve una matriz de igual tama?o a los
388
	 * No aplica supersampleo ni subsampleo sino que devuelve una matriz de igual tamao a los
389 389
	 * pixeles de disco.
390
	 * @param ulx Posici?n X superior izquierda
391
	 * @param uly Posici?n Y superior izquierda
392
	 * @param lrx Posici?n X inferior derecha
393
	 * @param lry Posici?n Y inferior derecha
390
	 * @param ulx Posicin X superior izquierda
391
	 * @param uly Posicin Y superior izquierda
392
	 * @param lrx Posicin X inferior derecha
393
	 * @param lry Posicin Y inferior derecha
394 394
	 * @param rasterBuf	Buffer de datos
395 395
	 * @param bandList
396 396
	 * @return Buffer de datos
397 397
	 */
398
	abstract protected Buffer getWindow(Extent extent, BandList bandList, Buffer rasterBuf, TaskStatus status) 
398
	abstract public Buffer getWindow(Extent extent, BandList bandList, Buffer rasterBuf, TaskStatus status) 
399 399
		throws ProcessInterruptedException, RasterDriverException;
400 400

  
401 401
	/**
402 402
	 * Obtiene una ventana de datos de la imagen a partir de coordenadas reales.
403
	 * No aplica supersampleo ni subsampleo sino que devuelve una matriz de igual tama?o a los
403
	 * No aplica supersampleo ni subsampleo sino que devuelve una matriz de igual tamao a los
404 404
	 * pixeles de disco.
405
	 * @param x Posici?n X superior izquierda
406
	 * @param y Posici?n Y superior izquierda
405
	 * @param x Posicin X superior izquierda
406
	 * @param y Posicin Y superior izquierda
407 407
	 * @param w Ancho en coordenadas reales
408 408
	 * @param h Alto en coordenadas reales
409 409
	 * @param rasterBuf	Buffer de datos
......
411 411
	 * @param adjustToExtent Flag que dice si el extent solicitado debe ajustarse al extent del raster o no.
412 412
	 * @return Buffer de datos
413 413
	 */
414
	abstract protected Buffer getWindow(double x, double y, double w, double h, 
414
	abstract public Buffer getWindow(double x, double y, double w, double h, 
415 415
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException;
416 416

  
417 417
	/**
418 418
	 * Obtiene una ventana de datos de la imagen a partir de coordenadas reales.
419
	 * Se aplica supersampleo o subsampleo dependiendo del tama?o del buffer especificado.
419
	 * Se aplica supersampleo o subsampleo dependiendo del tamao del buffer especificado.
420 420
	 *
421
	 * @param minX Posici?n m?nima X superior izquierda
422
	 * @param minY Posici?n m?nima Y superior izquierda
423
	 * @param maxX Posici?n m?xima X inferior derecha
424
	 * @param maxY Posici?n m?xima Y inferior derecha
421
	 * @param minX Posici�n m�nima X superior izquierda
422
	 * @param minY Posici�n m�nima Y superior izquierda
423
	 * @param maxX Posici�n m�xima X inferior derecha
424
	 * @param maxY Posici�n m�xima Y inferior derecha
425 425
	 * @param bufWidth Ancho del buffer de datos
426 426
	 * @param bufHeight Alto del buffer de datos
427 427
	 * @param rasterBuf	Buffer de datos
......
429 429
	 * @param bandList
430 430
	 * @return Buffer de datos
431 431
	 */
432
	abstract protected Buffer getWindow(Extent extent, 
432
	abstract public Buffer getWindow(Extent extent, 
433 433
			int bufWidth, int bufHeight, BandList bandList, Buffer rasterBuf, 
434 434
			boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException;
435 435

  
436 436
	/**
437 437
	 * Obtiene una ventana de datos de la imagen a partir de coordenadas pixel.
438
	 * Se aplica supersampleo o subsampleo dependiendo del tama?o del buffer especificado.
438
	 * Se aplica supersampleo o subsampleo dependiendo del tamao del buffer especificado.
439 439
	 *
440
	 * @param x Posici?n X superior izquierda
441
	 * @param y Posici?n Y superior izquierda
440
	 * @param x Posicin X superior izquierda
441
	 * @param y Posicin Y superior izquierda
442 442
	 * @param w Ancho en coordenadas reales
443 443
	 * @param h Alto en coordenadas reales
444 444
	 * @param bufWidth Ancho del buffer de datos
......
447 447
	 * @param bandList
448 448
	 * @return Buffer de datos
449 449
	 */
450
	abstract protected Buffer getWindow(int x, int y, int w, int h, 
450
	abstract public Buffer getWindow(int x, int y, int w, int h, 
451 451
			BandList bandList, Buffer rasterBuf, TaskStatus status)throws ProcessInterruptedException, RasterDriverException;
452 452

  
453 453
	abstract public int getBlockSize();
......
525 525
	}
526 526

  
527 527
	/**
528
	 * Obtiene el n?nero de bandas del fichero
529
	 * @return Entero que representa el n?mero de bandas
528
	 * Obtiene el nnero de bandas del fichero
529
	 * @return Entero que representa el nmero de bandas
530 530
	 */
531 531
	public int getBandCount() {
532 532
		return bandCount;
......
567 567
	}
568 568

  
569 569
	/**
570
	 * Dice si el fichero tiene georreferenciaci?n o no.
571
	 * @return true si tiene georreferenciaci?n y false si no la tiene
570
	 * Dice si el fichero tiene georreferenciacin o no.
571
	 * @return true si tiene georreferenciacin y false si no la tiene
572 572
	 */
573 573
	public boolean isGeoreferenced() {
574 574
		return true;
575 575
	}
576 576

  
577 577
	/**
578
	 * Dado unas coordenadas reales, un tama?o de buffer y un tama?o de raster.
579
	 * Si el buffer es de mayor tama?o que el raster (supersampleo) quiere decir que
580
	 * por cada pixel de buffer se repiten varios del raster. Esta funci?n calcula el
581
	 * n?mero de pixels de desplazamiento en X e Y que corresponden al primer pixel del
578
	 * Dado unas coordenadas reales, un tama�o de buffer y un tama�o de raster.
579
	 * Si el buffer es de mayor tamao que el raster (supersampleo) quiere decir que
580
	 * por cada pixel de buffer se repiten varios del raster. Esta funcin calcula el
581
	 * nmero de pixels de desplazamiento en X e Y que corresponden al primer pixel del
582 582
	 * buffer en la esquina superior izquierda. Esto es necesario porque la coordenada
583 583
	 * solicitada es real y puede no caer sobre un pixel completo. Este calculo es
584 584
	 * util cuando un cliente quiere supersamplear sobre un buffer y que no se lo haga
585
	 * el driver autom?ticamente.
585
	 * el driver automticamente.
586 586
	 * @param dWorldTLX Coordenada real X superior izquierda
587 587
	 * @param dWorldTLY Coordenada real Y superior izquierda
588 588
	 * @param dWorldBRX Coordenada real X inferior derecha
......
655 655
	}
656 656

  
657 657
	/**
658
	 * Calcula el extent en coordenadas del mundo real sin rotaci?n. Solo coordenadas y tama?o de pixel
658
	 * Calcula el extent en coordenadas del mundo real sin rotaci�n. Solo coordenadas y tama�o de pixel
659 659
	 * @return Extent
660 660
	 */
661 661
	public Extent getExtentWithoutRot() {
......
670 670
	}
671 671

  
672 672
	/**
673
	 * ASigna el par?metro de inicializaci?n del driver.
673
	 * ASigna el par�metro de inicializaci�n del driver.
674 674
	 */
675 675
	public void setParam(DataStoreProviderServices provServices, DataStoreParameters param) {
676 676
		if(param instanceof RasterDataParameters)
......
751 751
	}
752 752

  
753 753
	public boolean isInside(Point2D p){
754
		//Realizamos los calculos solo si el punto est? dentro del extent de la imagen rotada, as? nos ahorramos los calculos
755
		//cuando el puntero est? fuera
754
		//Realizamos los calculos solo si el punto est� dentro del extent de la imagen rotada, as� nos ahorramos los calculos
755
		//cuando el puntero est fuera
756 756

  
757 757
		Point2D pt = new Point2D.Double();
758 758
		try {
......
769 769
	}
770 770

  
771 771
	/**
772
	 * Consulta de si un raster tiene rotaci?n o no.
773
	 * @return true si tiene rotaci?n y false si no la tiene.
772
	 * Consulta de si un raster tiene rotacin o no.
773
	 * @return true si tiene rotacin y false si no la tiene.
774 774
	 */
775 775
	public boolean isRotated() {
776 776
		if(externalTransformation.getShearX() != 0 || externalTransformation.getShearY() != 0)
......
916 916
	}
917 917

  
918 918
	/**
919
	 * Asigna el objeto que contiene que contiene la interpretaci?n de
919
	 * Asigna el objeto que contiene que contiene la interpretacin de
920 920
	 * color por banda
921 921
	 * @param DataStoreColorInterpretation
922 922
	 */
......
1006 1006
	
1007 1007
	/**
1008 1008
	 * Traduce el nombre del fichero por un alias asignado por el propio driver.
1009
	 * Cuando es traducido por un alias el driver intentar? abrir el alias y no el
1010
	 * fichero. Esto es util porque algunos formatos tienen la extensi?n en el
1009
	 * Cuando es traducido por un alias el driver intentar abrir el alias y no el
1010
	 * fichero. Esto es util porque algunos formatos tienen la extensin en el
1011 1011
	 * fichero de cabecera pero lo que se abre realmente es el fichero de datos.
1012 1012
	 * @param fileName
1013 1013
	 * @return
......
1067 1067
	}
1068 1068

  
1069 1069
	/**
1070
	 * Elimina la matriz de transformaci?n asociada al raster y que se tiene en
1071
	 * cuenta para el setView. Este reseteo tendr? en cuenta que si el raster
1072
	 * tiene asociado un rmf esta transformaci?n no ser? eliminada sino que se
1073
	 * asignar? la correspondiente al rmf existente.
1070
	 * Elimina la matriz de transformacin asociada al raster y que se tiene en
1071
	 * cuenta para el setView. Este reseteo tendr en cuenta que si el raster
1072
	 * tiene asociado un rmf esta transformaci�n no ser� eliminada sino que se
1073
	 * asignar la correspondiente al rmf existente.
1074 1074
	 * @return devuelve true si tiene fichero rmf asociado y false si no lo tiene.
1075 1075
	 */
1076 1076
	public void resetAffineTransform() {
......
1122 1122
		if(serialInfo == null) {
1123 1123
			serialInfo =  new DefaultTimeSerials();
1124 1124
			loadObjectFromRmf(TimeSeries.class, serialInfo);
1125
			//Seleccionamos la primera serie por defecto. El usuario seleccionar? otra si la necesita
1125
			//Seleccionamos la primera serie por defecto. El usuario seleccionar otra si la necesita
1126 1126
			serialInfo.selectSerial(0);
1127 1127
		}
1128 1128
		return serialInfo;

Also available in: Unified diff