Revision 12151

View differences:

trunk/libraries/libRaster/src/org/gvsig/raster/dataset/MultiRasterDataset.java
356 356
		int height = (int)Math.abs(Math.floor(p1.getY()) - Math.ceil(p2.getY()));
357 357
		
358 358
		int mallocNBands = 0;
359
		if(bandList.getDrawableArray() != null)
360
			mallocNBands = bandList.getDrawableArray().length;
359
		if(bandList.getDrawableBands() != null)
360
			mallocNBands = bandList.getDrawableBands().length;
361 361
		else
362 362
			bandList.getDrawableBandsCount();
363 363
		
......
420 420
				throw new InvalidSetViewException("");
421 421
		
422 422
		int mallocNBands = 0;
423
		if(bandList.getDrawableArray() != null)
424
			mallocNBands = bandList.getDrawableArray().length;
423
		if(bandList.getDrawableBands() != null)
424
			mallocNBands = bandList.getDrawableBands().length;
425 425
		else
426 426
			bandList.getDrawableBandsCount();
427 427
		
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/io/EcwDriver.java
384 384
				readBands[i] = -1;
385 385
			int cont = 0;
386 386
			for(int i = 0; i < file.numBands; i++) {
387
				int[] bandsToDraw = bandList.getBand(i).getDataImageBandToDraw();
387
				int[] bandsToDraw = bandList.getBand(i).getBufferBandListToDraw();
388 388
				if(bandsToDraw != null) {
389 389
					for(int j = 0; j < bandsToDraw.length; j++){
390 390
						readBandsFromECW[cont] = i;
......
426 426
		//********* caso especial que resuelve Bug#1 **********************
427 427
		if(file.numBands == 3 && bandList.getDrawableBandsCount() < 3) {  
428 428
			for(int i = 0; i < 3; i ++){
429
				int[] b = bandList.getBand(i).getDataImageBandToDraw();
429
				int[] b = bandList.getBand(i).getBufferBandListToDraw();
430 430
				if(b != null){
431 431
					bandG = 1; bandR = 0; bandB = 2;
432 432
				}
......
434 434
		}
435 435
		if(file.numBands == 3 && bandR == bandG && bandG == bandB) { //caso especial que resuelve Bug#1
436 436
			for(int i = 0; i < 3; i ++) {
437
				int[] b = bandList.getBand(i).getDataImageBandToDraw();
437
				int[] b = bandList.getBand(i).getBufferBandListToDraw();
438 438
				if(b != null){
439 439
					if(i == 0){
440 440
						for (int line = 0; line < rasterBuf.getHeight(); line++) {
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/BandList.java
22 22

  
23 23
/**
24 24
 * Esta clase gestiona una lista de bandas que puede pertenecer
25
 * a un fichero (la tiene un geoRasterFile) o puede ser una lista 
26
 * de bandas de multiples ficheros (la tiene un multifiledataset) 
25
 * a un fichero (la tiene un Dataset) o puede ser una lista 
26
 * de bandas de multiples ficheros (la tiene un MultiRasterDataset). Las bandas son
27
 * almacenadas en un array donde la posici?n en este es el n?mero de banda.  
27 28
 * @author Nacho Brodin (nachobrodin@gmail.com)
28 29
 *
29 30
 */
......
48 49
			int[] drawBands = new int[drawableBands.length];
49 50
			for (int i = 0; i < drawableBands.length; i++) 
50 51
				drawBands[i] = drawableBands[i];
51
			result.setDrawableArray(drawableBands);
52
			result.setDrawableBands(drawableBands);
52 53
		}
53 54
		
54 55
		return result;
......
58 59
	 * Asigna el ?ltimo array de bandas a escribir solicitadas.
59 60
	 * @param drawableBands
60 61
	 */
61
	public void setDrawableArray(int[] drawableBands){
62
	public void setDrawableBands(int[] drawableBands) {
62 63
		this.drawableBands = drawableBands;
63 64
	}
64 65
	
......
74 75
	 * Obtiene el ?ltimo array de bandas a escribir solicitadas.
75 76
	 * @return
76 77
	 */
77
	public int[] getDrawableArray(){
78
		return this.drawableBands;
78
	public int[] getDrawableBands() {	
79
		return drawableBands;
79 80
	}
80 81
	
81 82
	/**
......
85 86
	 * @return true si se ha hallado la banda y false si no se 
86 87
	 * ha encontrado
87 88
	 */
88
	public boolean findBand(Band band){
89
		for(int i = 0; i < bands.size(); i++){
89
	public boolean findBand(Band band) {
90
		for(int i = 0; i < bands.size(); i++) {
90 91
			Band b = (Band)bands.get(i); 
91 92
			if(	b.getFileName().equals(band.getFileName()) &&
92 93
				b.getPosition() == band.getPosition())
......
117 118
	public int[] bandsToDrawList(int nBandsDataImage){
118 119
		
119 120
		int[] bandsToRead = new int[nBandsDataImage];
120
		for(int dataImageBand = 0;dataImageBand < nBandsDataImage;dataImageBand++){
121
		for(int dataImageBand = 0;dataImageBand < nBandsDataImage;dataImageBand++) {
121 122
			bandsToRead[dataImageBand] = -1;
122
			for(int band = 0;band < bands.size();band++){
123
			for(int band = 0;band < bands.size();band++) {
123 124
				if(	((Band)bands.get(band)) != null &&
124
					((Band)bands.get(band)).getDataImageBandToDraw() != null){
125
					for(int dest=0;dest<((Band)bands.get(band)).getDataImageBandToDraw().length;dest++){
126
						if(dataImageBand == ((Band)bands.get(band)).getDataImageBandToDraw()[dest])
125
					((Band)bands.get(band)).getBufferBandListToDraw() != null) {
126
					for(int dest=0;dest<((Band)bands.get(band)).getBufferBandListToDraw().length;dest++){
127
						if(dataImageBand == ((Band)bands.get(band)).getBufferBandListToDraw()[dest])
127 128
							bandsToRead[dataImageBand] = band;
128 129
					}
129 130
				}
......
185 186
	 * Resetea la asignaci?n de dibujado de las bandas de la imagen
186 187
	 * sobre el DataImage cuando se hace un update para esta banda.
187 188
	 */
188
	public void clearDrawableBand(){
189
	public void clearDrawableBands(){
189 190
		drawableBands = null;
190 191
		for(int i = 0; i < getBandCount(); i++)
191 192
			((Band)bands.get(i)).clearDrawableBands();
......
216 217
		int nbands = 0;
217 218
		for(int i = 0;i < bands.size();i++) {
218 219
			Band b = (Band)bands.get(i);
219
			if(b.getDataImageBandToDraw() != null)
220
				nbands += b.getDataImageBandToDraw().length;
220
			if(b.getBufferBandListToDraw() != null)
221
				nbands += b.getBufferBandListToDraw().length;
221 222
		}
222 223
		return nbands;
223 224
	}
......
252 253
		for(int i = 0; i < bands.size(); i++){
253 254
			if(((Band)bands.get(i)).getFileName().equals(fileName))
254 255
				if(((Band)bands.get(i)).getPosition() == band)
255
					return ((Band)bands.get(i)).getDataImageBandToDraw();
256
					return ((Band)bands.get(i)).getBufferBandListToDraw();
256 257
		}
257 258
		int[] r = {-1};
258 259
		return r;
......
330 331
			System.out.println("DataType: " + ((Band)getBand(i)).getDataType());
331 332
			System.out.println("FileName: " + ((Band)getBand(i)).getFileName());
332 333
			System.out.println("Position: " + ((Band)getBand(i)).getPosition());
333
			if(((Band)getBand(i)).getDataImageBandToDraw() != null) {
334
			if(((Band)getBand(i)).getBufferBandListToDraw() != null) {
334 335
				System.out.print("Band Dst: ");
335
				for (int j = 0; j < ((Band)getBand(i)).getDataImageBandToDraw().length; j++)
336
					System.out.print(((Band)getBand(i)).getDataImageBandToDraw()[j] + " ");
336
				for (int j = 0; j < ((Band)getBand(i)).getBufferBandListToDraw().length; j++)
337
					System.out.print(((Band)getBand(i)).getBufferBandListToDraw()[j] + " ");
337 338
			}
338 339
		}
339 340
		
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/Band.java
71 71
	 * este objeto banda
72 72
	 * @return bandas del RasterBuf
73 73
	 */
74
	public int[] getDataImageBandToDraw() {
74
	public int[] getBufferBandListToDraw() {
75 75
		return rasterBufBandToDrawList;
76 76
	}
77 77

  
......
93 93
	 * @param rasterBufBandToDraw banda del RasterBuf
94 94
	 */
95 95
	public void setPositionToDrawInBuffer(int rasterBufBandToDraw) {
96
		if(rasterBufBandToDrawList == null){
96
		if(rasterBufBandToDrawList == null) {
97 97
			rasterBufBandToDrawList = new int[1];
98 98
			rasterBufBandToDrawList[0] = rasterBufBandToDraw;
99 99
		}else{
100 100
			int[] auxList = new int[rasterBufBandToDrawList.length + 1];
101
			for(int i=0;i<rasterBufBandToDrawList.length;i++)
101
			for(int i = 0; i < rasterBufBandToDrawList.length; i++)
102 102
				auxList[i] = rasterBufBandToDrawList[i];
103 103
			auxList[rasterBufBandToDrawList.length] = rasterBufBandToDraw;
104 104
			rasterBufBandToDrawList = auxList;
trunk/libraries/libRaster/src/org/gvsig/raster/grid/GridNotInterpolated.java
116 116
			
117 117
		try {
118 118
			dataSource.clearDrawableBand();
119
			dataSource.addDrawableBands(bands);
119
			dataSource.setDrawableBands(bands);
120 120
			dataSource.setAreaOfInterest(iBufMinX, iBufMinY, m_iWidth, m_iHeight);
121 121
			rasterBuf = (RasterBuffer)dataSource.getRasterBuf();
122 122
		} catch (Exception e){
trunk/libraries/libRaster/src/org/gvsig/raster/grid/render/Rendering.java
248 248
					 if(bufferFactory.getMultiRasterDataset().getTransparencyFilesStatus().existAlphaBand()) {
249 249
						 //BufferFactory bufferFactoryAlphaBand = new BufferFactory(bufferFactory.getMultiRasterDataset());
250 250
						 bufferFactory.setSupersamplingLoadingBuffer(false);	//Desactivamos el supersampleo en la carga del buffer.
251
						 bufferFactory.clearDrawableBand();
252
						 bufferFactory.addDrawableBands(new int[]{lastTransparency.getAlphaBandNumber(), -1, -1});
251
						 bufferFactory.setDrawableBands(new int[]{lastTransparency.getAlphaBandNumber(), -1, -1});
253 252
						 bufferFactory.setAreaOfInterest(adjustedExtent[0], adjustedExtent[1], adjustedExtent[2], adjustedExtent[3], wImg, hImg, true);
254 253
						 bufferFactory.setSupersamplingLoadingBuffer(true);
255 254
						 lastTransparency.setAlphaBand(bufferFactory.getRasterBuf());
256 255
						 lastTransparency.activeTransparency();
257 256
					 }
258
					bufferFactory.clearDrawableBand();
259 257
					bufferFactory.setSupersamplingLoadingBuffer(false);	//Desactivamos el supersampleo en la carga del buffer.
260 258
																		//En el renderizado ser? ImageDrawer el que se encargue de esta funci?n
261
					bufferFactory.addDrawableBands(getRenderBands());
259
					bufferFactory.setDrawableBands(getRenderBands());
262 260
					step = bufferFactory.setAreaOfInterest(adjustedExtent[0], adjustedExtent[1], adjustedExtent[2], adjustedExtent[3], wImg, hImg, true);
263 261
					bufferFactory.setSupersamplingLoadingBuffer(true);
264 262
					
trunk/libraries/libRaster/src/org/gvsig/raster/grid/GridInterpolated.java
87 87
		
88 88
		m_dCellSize = dataSource.getXCellSize();
89 89
		
90
		dataSource.addDrawableBands(bands);
90
		dataSource.setDrawableBands(bands);
91 91
	}
92 92
		
93 93
	/**
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/convolution/ConvolutionFilter.java
216 216
			if (nameFilter=="personalizado" ){
217 217
				
218 218
				
219
				params.setParam("LadoVentana",
219
				/*params.setParam("LadoVentana",
220 220
						ladoVentana+ "",
221 221
						Params.MATRIX,
222
						new String[] {"0","1","2"});
222
						new String[] {"0","1","2"});*/
223 223
				/*if(ladoVentana==0){
224 224
					
225 225
				System.out.print("0");	
trunk/libraries/libRaster/src/org/gvsig/raster/buffer/BufferFactory.java
59 59
	private IBuffer					rasterBuf = null;
60 60
	private int						width = 0;
61 61
	private int						height = 0;
62
	private int[] 					drawableBands = null;
62

  
63 63
	/**
64 64
	 * Extensi?n de los datos del buffer
65 65
	 */
......
188 188
	 */
189 189
	public void clearDrawableBand() {
190 190
		for(int i = 0; i < mDataset.getDatasetCount(); i++)
191
			mDataset.getBands().clearDrawableBand();
191
			mDataset.getBands().clearDrawableBands();
192 192
		palette = null;
193 193
	}
194 194
	
......
201 201
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
202 202
	 * dataset multifichero al que corresponde la banda.
203 203
	 */
204
	public int[] addDrawableBands(int[] drawableBands) {
205
		this.drawableBands = drawableBands;
206
		mDataset.getBands().setDrawableArray(drawableBands);
204
	public int[] setDrawableBands(int[] drawableBands) {
205
		clearDrawableBand();
206
		mDataset.getBands().setDrawableBands(drawableBands);
207 207
		
208 208
		int[] files = new int[drawableBands.length];
209 209
		palette = new DatasetPalette[drawableBands.length];
......
229 229
	 */
230 230
	public int[] setAllDrawableBands() {
231 231
		clearDrawableBand();
232
		drawableBands = new int[mDataset.getBandCount()];
233
		int[] files = new int[drawableBands.length];
234
		palette = new DatasetPalette[drawableBands.length];
232
		int[] files = new int[mDataset.getBandCount()];
233
		palette = new DatasetPalette[mDataset.getBandCount()];
235 234
		
236 235
		for(int i = 0; i< mDataset.getBandCount(); i++) {
237 236
			mDataset.getBands().addDrawableBand(i, i);
238
			this.drawableBands[i] = i;
239
			String fileName = mDataset.getBands().getBand(drawableBands[i]).getFileName();
237
			String fileName = mDataset.getBands().getBand(i).getFileName();
240 238
			files[i] = mDataset.getBands().getFileNumber(fileName);
241 239
			palette[i] = mDataset.getPalette(fileName);
242 240
		}
......
250 248
	 * @return Array de enteros con el orden de las badas
251 249
	 */
252 250
	public int[] getDrawableBands() {
253
		return drawableBands;
251
		return mDataset.getBands().getDrawableBands();
254 252
	}
255 253
	
256 254
	/**
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TestGdalFloatHistogram.java
66 66
			return;
67 67
		}
68 68
		ds = new BufferFactory(f);
69
		ds.addDrawableBands(drawableBands);
69
		ds.setDrawableBands(drawableBands);
70 70
		ds.setAreaOfInterest(0, 0, 28, 25);
71 71
		//printData();
72 72
		
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentBufferGdal.java
71 71
			return;
72 72
		}
73 73
		ds = new BufferFactory(f);
74
		ds.addDrawableBands(drawableBands);
74
		ds.setDrawableBands(drawableBands);
75 75
		ds.setAreaOfInterest(645817.0, 4923851.0, 645853.0, 4923815.0, 10, 10, true);
76 76
		//print();
77 77
		dataTest1();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TestBufferInterpolation.java
89 89
			return;
90 90
		}
91 91
		ds = new BufferFactory(f);
92
		ds.addDrawableBands(drawableBands);
92
		ds.setDrawableBands(drawableBands);
93 93
		ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
94 94
		RasterBuffer buf = (RasterBuffer)ds.getRasterBuf();
95 95
		
......
152 152
			return;
153 153
		}
154 154
		BufferFactory ds = new BufferFactory(d1);
155
		ds.addDrawableBands(drawableBands);
155
		ds.setDrawableBands(drawableBands);
156 156
		ds.setAreaOfInterest(0, 0, d1.getWidth(), d1.getHeight());
157 157
		IBuffer b1 = ds.getRasterBuf();
158 158
		
159 159
		ds = new BufferFactory(d2);
160
		ds.addDrawableBands(drawableBands);
160
		ds.setDrawableBands(drawableBands);
161 161
		ds.setAreaOfInterest(0, 0, d1.getWidth(), d1.getHeight());
162 162
		IBuffer b2 = ds.getRasterBuf(); 
163 163
		
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/cache/TestRasterReadOnlyHugeBuffer.java
72 72
		}
73 73
		BufferFactory ds = new BufferFactory(f);
74 74
		int[] drawableBands = {0, 1, 2};
75
		ds.addDrawableBands(drawableBands);
75
		ds.setDrawableBands(drawableBands);
76 76
		ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
77 77
		buf = ds.getRasterBuf();
78 78
		
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/cache/TestReadOnlyCache.java
64 64
			ds = new BufferFactory(f);
65 65
			RasterBuffer.forceToLoadInReadOnlyCache = true;
66 66
			
67
			ds.addDrawableBands(drawableBands);
67
			ds.setDrawableBands(drawableBands);
68 68
			ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
69 69
					       
70 70
			IBuffer buf = ds.getRasterBuf();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/cache/TestSaveAndLoadPages.java
47 47
		int[] drawableBands = {0, 1, 2};
48 48
		
49 49
		ds = new BufferFactory(f);
50
		ds.addDrawableBands(drawableBands);
50
		ds.setDrawableBands(drawableBands);
51 51
		ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
52 52
		
53 53
		int h =  f.getHeight() / pages;
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/cache/TestRasterCache.java
51 51
		int nTimes = 1;
52 52
		
53 53
		ds = new BufferFactory(f);
54
		ds.addDrawableBands(drawableBands);
54
		ds.setDrawableBands(drawableBands);
55 55
		ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight());
56 56
				        
57 57
		//Salvamos los PageBuffer
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentGdal.java
71 71
			return;
72 72
		}
73 73
		ds = new BufferFactory(f);
74
		ds.addDrawableBands(drawableBands);
74
		ds.setDrawableBands(drawableBands);
75 75
		ds.setAreaOfInterest(645817.0, 4923851.0, 40, 40, true);
76 76
		dataTest1();
77 77
		//print();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentBufferEcw.java
72 72
			return;
73 73
		}
74 74
		ds = new BufferFactory(f);
75
		ds.addDrawableBands(drawableBands);
75
		ds.setDrawableBands(drawableBands);
76 76
		//Se selecciona un ?rea mayor que el extent para probar que lo ajusta a este 
77 77
		ds.setAreaOfInterest(645860.0, 4923870.0, 645986.0, 4923744.0, 10, 10, true);
78 78
		//print();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSIntBufferGdal.java
72 72
			return;
73 73
		}
74 74
		ds = new BufferFactory(f);
75
		ds.addDrawableBands(drawableBands);
75
		ds.setDrawableBands(drawableBands);
76 76
		try {
77 77
			ds.setAreaOfInterest(0, 0, 25, 24, 5, 5);
78 78
		} catch (InvalidSetViewException e) {
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentEcw.java
72 72
			return;
73 73
		}
74 74
		ds = new BufferFactory(f);
75
		ds.addDrawableBands(drawableBands);
75
		ds.setDrawableBands(drawableBands);
76 76
		//Se selecciona un ?rea mayor que el extent para probar que lo ajusta a este 
77 77
		ds.setAreaOfInterest(645860.0, 4923870.0, 130, 130, true);
78 78
		dataTest1();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSIntGdal.java
71 71
			return;
72 72
		}
73 73
		ds = new BufferFactory(f);
74
		ds.addDrawableBands(drawableBands);
74
		ds.setDrawableBands(drawableBands);
75 75
		ds.setAreaOfInterest(0, 0, 25, 24);
76 76
		dataTest1();
77 77
		//print();
trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSIntEcw.java
69 69
			return;
70 70
		}
71 71
		ds = new BufferFactory(f);
72
		ds.addDrawableBands(drawableBands);
72
		ds.setDrawableBands(drawableBands);
73 73
		ds.setAreaOfInterest(0, 0, 30, 30);
74 74
		dataTest1();
75 75
		//print();
trunk/libraries/libRaster/src-test/org/gvsig/raster/dataset/io/TestGdalWriter.java
68 68
			e.printStackTrace();
69 69
		}
70 70
		BufferFactory bf = new BufferFactory(d);
71
		bf.addDrawableBands(new int[]{0, 1, 2}); 
71
		bf.setDrawableBands(new int[]{0, 1, 2}); 
72 72
		bf.setAreaOfInterest(0, 0, d.getWidth(), d.getHeight());
73 73
		buf = bf.getRasterBuf();
74 74
	}
trunk/libraries/libRaster/src-test/org/gvsig/raster/dataset/TestIOMemoryRasterDriver.java
66 66
		}
67 67
		int[] drawableBands = {0, 1, 2};
68 68
		ds = new BufferFactory(f1);
69
		ds.addDrawableBands(drawableBands);
69
		ds.setDrawableBands(drawableBands);
70 70
		ds.setAreaOfInterest(0, 0, 25, 24);
71 71
		IBuffer buf = ds.getRasterBuf();
72 72
		

Also available in: Unified diff