Revision 11284 trunk/libraries/libRaster/src/org/gvsig/raster/buffer/IQueryableRaster.java

View differences:

IQueryableRaster.java
26 26

  
27 27
/**
28 28
 * Interfaz que deben implementar las clases que sirven datos y tienen posibilidad
29
 * de consulta. Tipicamente en gvSIG es implementado por DataSource que ofrecer?
30
 * sus datos a trav?s de un RasterBuffer y su interfaz IBuffer.
29
 * de consulta. 
31 30
 * 
32 31
 * @author Nacho Brodin (nachobrodin@gmail.com)
33 32
 *
......
39 38
	public final static int INTERPOLATION_InverseDistance	= 3;
40 39
	public final static int INTERPOLATION_BicubicSpline		= 4;
41 40
	public final static int INTERPOLATION_BSpline			= 5;
42

  
43
	/**
44
	 * Obtiene el ancho de la imagen
45
	 * @return  Ancho en pixeles de la imagen
46
	 */
47
	public int getWidth();
48 41
	
49 42
	/**
50
	 * Obtiene el alto de la imagen
51
	 * @return  Alto en pixeles de la imagen
43
	 * Consulta si una capa est? siendo tileada o no
44
	 * @return true si est? siendo tileada y false si no lo est?
52 45
	 */
53
	public int getHeight();
46
	public boolean isTiled();
54 47
	
55 48
	/**
56
	 * Tama?o de celda en X
57
	 * @return 
49
	 * Obtiene el tama?o del tile si la capa est? siendo tileada. Esta funci?n e fundamentalmente
50
	 * usada por salvar a raster donde se consulta el tama?o del tile para hacer bandas de ese ancho.
51
	 * @return array con dos enteros que representan el ancho y el alto del tile
58 52
	 */
59
	public double getXCellSize();
53
	public int[] getTileSize();
60 54
	
61
	/**
62
	 * Tama?o de celda en Y
63
	 * @return
64
	 */
65
	public double getYCellSize();
66
	
67
	/**
68
	 * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
69
	 * estas coordenadas son ajustadas el extent.
70
	 * @param x Coordenada X, esquina superior izquierda
71
	 * @param y Coordenada Y, esquina superior izquierda
72
	 * @param w Ancho del ?rea 
73
	 * @param h Alto del ?rea
74
	 * @param adjustToExtent Flag que dice si el extent solicitado debe ajustarse al extent del raster o no.
75
	 * @throws ArrayIndexOutOfBoundsException
76
	 */
77
	public void setAreaOfInterest(double x, double y, double w, double h, boolean adjustToExtent) throws ArrayIndexOutOfBoundsException;
78
	
79
	/**
80
	 * Asigna el ?rea de interes en coordenadas pixel. Si las coordenadas exceden del tama?o de la imagen
81
	 * lanza una excepci?n.
82
	 * @param x Coordenada X, esquina superior izquierda
83
	 * @param y Coordenada Y, esquina superior izquierda
84
	 * @param w Ancho del ?rea 
85
	 * @param h Alto del ?rea
86
	 * @throws ArrayIndexOutOfBoundsException
87
	 */
88
	public void setAreaOfInterest(int x, int y, int w, int h) throws ArrayIndexOutOfBoundsException;
89
	
90
	/**
91
	 * Asigna el ?rea de inter?s a toda la extensi?n del raster.
92
	 */
93
	public void setAreaOfInterest();
94
	
95
	/**
96
	 * Asigna el ?rea de interes en coordenadas pixel. Esta operaci?n cargar? un RasterBuffer con los datos solicitados por
97
	 * lo que, si al acabar hacemos getRasterBuf obtendremos la matriz de datos. Si las coordenadas exceden del tama?o 
98
	 * de la imagen lanza una excepci?n.
99
	 * @param x Coordenada X, esquina superior izquierda
100
	 * @param y Coordenada Y, esquina superior izquierda
101
	 * @param w Ancho del ?rea 
102
	 * @param h Alto del ?rea
103
	 * @param bufWidth Ancho del buffer
104
	 * @param bufHeight Alto del buffer
105
	 * @throws ArrayIndexOutOfBoundsException
106
	 */
107
	public void setAreaOfInterest(int x, int y, int w, int h, int bufWidth, int bufHeight) throws ArrayIndexOutOfBoundsException;
108
	
109
	/**
110
	 * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
111
	 * estas coordenadas son ajustadas el extent.
112
	 * @param x Coordenada X, esquina superior izquierda
113
	 * @param y Coordenada Y, esquina superior izquierda
114
	 * @param w Ancho del ?rea 
115
	 * @param h Alto del ?rea
116
	 * @param bufWidth Ancho del buffer
117
	 * @param bufHeight Alto del buffer
118
	 * @param adjustToExtent Flag que dice si el extent solicitado debe ajustarse al extent del raster o no. 
119
	 * @return En caso de que el buffer sea mayor que el tama?o seleccionado de raster se produce supersampleo. La funci?n devuelve
120
	 * un array de dos elementos que representan el desplazamiento en pixels de X e Y de la esquina superior izquierda. 
121
	 * @throws ArrayIndexOutOfBoundsException
122
	 */
123
	public int[] setAreaOfInterest(double minX, double minY, double maxX, double maxY, int bufWidth, int bufHeight, boolean adjustToExtent) throws ArrayIndexOutOfBoundsException;
124
	
125
	/**
126
	 * Obtiene un buffer desde la posici?n x,y en pixeles de ancho w y alto h
127
	 * @param x Coordenada x de la esquina superior izquierda
128
	 * @param y Coordenada y de la esquina superior izquierda
129
	 * @param w Ancho del grid
130
	 * @param h Alto del grid
131
	 * @return Buffer de datos
132
	 */
133
	public RasterBuffer getData(int x, int y, int w, int h);
134
	
135
	/**
136
	 * Devuelve el tipo de datos del raster
137
	 * @see java.awt.image.DataBuffer
138
	 */
139
	public int getDataType();
140

  
141
	/**
142
	 * Asigna tipo de datos del raster
143
	 * @see java.awt.image.DataBuffer
144
	 */
145
	public void setDataType(int dt);
146

  
147
	/**
148
	 * Devuelve true si la celda contiene un valor de NODATA
149
	 * @param x	coordenada X
150
	 * @param y coordenada Y
151
	 * @return
152
	 */
153
	public boolean isNoData(int x, int y, int band);
154
	
155
	/**
156
	 * Obtiene el n?mero de bandas
157
	 * @return N?mero de bandas
158
	 */
159
	public int getBandCount();
160
	
161
	/**
162
	 * Obtiene el buffer de datos del grid
163
	 * @return RasterBuf
164
	 */
165
	public IBuffer getRasterBuf();
166
	
167
	/**
168
	 * Para este GeoRasterFile asigna que bandas se pintaran
169
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
170
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
171
	 * sobre ese RasterBuf.
172
	 * @param drawableBands	Array con las bandas a dibujar.
173
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
174
	 * dataset multifichero al que corresponde la banda.
175
	 */
176
	public int[] addDrawableBands(int[] drawableBands);
177
	
178
	/**
179
	 * Para este GeoRasterFile asigna que bandas se pintaran
180
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
181
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
182
	 * sobre ese RasterBuf. Esta llamada asigna todas las bandas dibujables en su orden natural.
183
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
184
	 * dataset multifichero al que corresponde la banda.
185
	 */
186
	public int[] setAllDrawableBands();
187
	
188
	/**
189
	 * Obtiene el array que contiene el orden de bandas. Cada posici?n del vector es una banda
190
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
191
	 * sobre ese RasterBuf.
192
	 * @return Array de enteros con el orden de las badas
193
	 */
194
	public int[] getDrawableBands();
195
	
196
	/**
197
	 * Obtiene el extent de la fuente de datos
198
	 * @return Extent
199
	 */
200
	public Extent getExtent();
201
	
202
	/**
203
	 * Obtiene el extent correspondiente a los datos cargados en el buffer
204
	 * @return Extent
205
	 */
206
	public Extent getDataExtent();
207
	
208
	/**
209
	 * Obtiene las coordenadas del fichero worldFile (o cabecera del raster) asociado 
210
	 * o el RMF en caso de que existan. Si la imagen no est? georreferenciada tendr?
211
	 * las coordenadas pixel de la misma 
212
	 * @return Array de seis valores:
213
	 * 	<TABLE BORDER="1">
214
	 * 	<TR><TD><B>0:</B></TD><TD>Valor X de la esquina superior izquierda.</TD></TR>
215
	 * 	<TR><TD><B>1:</B></TD><TD>Tama?o de pixel en X.</TD></TR>
216
	 * 	<TR><TD><B>2:</B></TD><TD>Shearing en X.</TD></TR>
217
	 * 	<TR><TD><B>3:</B></TD><TD>Valor Y de la esquina superior izquierda.</TD></TR>
218
	 * 	<TR><TD><B>4:</B></TD><TD>Shearing en Y.</TD></TR>
219
	 * 	<TR><TD><B>5:</B></TD><TD>Tama?o de pixel en Y.</TD></TR>
220
	 * 	</TABLE>
221
	 */
222
	public double[] getCoordsGeoTransformFile();
223
	
224
	/**
225
	 * Obtiene el extent de la ?ltima selecci?n hecha con alguna de las llamadas
226
	 * setAreaOfInterest. Este extent es devuelto en coordenadas reales con las transformaciones
227
	 * que se hayan aplicado sobre el/los dataset.
228
	 * @return Extent Coordenadas reales que representan el ?ltimo ?rea de datos
229
	 * solicitada.
230
	 */
231
	public Extent getLastSelectedView();
232
	
233
	/**
234
	 * Obtiene la estructura que contiene la lista de ficheros del Grid
235
	 * @return GeoRasterMultiFile
236
	 */
237
	public RasterMultiDataset getGeoRasterMultiFile();
238
	
239
	/**
240
	 * Obtiene la lista de paletas asociadas a las bandas cargadas en el DataSource
241
	 * @return Lista con las paletas o null si no hay ninguna asocida. Un nulo en una
242
	 * posici?n del array tambi?n indicar? que para esa banda no hay paletas asociadas.
243
	 */
244
	public DatasetPalette[] getPalettes();
245
	
246 55
}

Also available in: Unified diff