Revision 20787 trunk/extensions/extRemoteSensing/src/org/gvsig/remotesensing/mosaic/process/MosaicProcess.java

View differences:

MosaicProcess.java
215 215
			}
216 216
		}
217 217
		
218
//		Construccion del mosaico: Operaci?n Superior
218
//		Construccion del mosaico: Operacion valor de capa de delantera
219 219
		if(codOp==3){
220 220
			int progress = 0;
221 221
			for(int band=0; band<numbands; band++){
......
230 230
			}
231 231
		}
232 232
		
233
		
234
		
235
//		Construccion del mosaico: Operaci?n Valor de capa de trasera
236
		if(codOp==4){
237
			
238
			// Cambio de orden del los elementos del buffer las capas inferiores pasan al principio del array
239
			RasterBuffer buffersCopy[]= new RasterBuffer[buffers.length];
240
			for(int i=0; i<buffers.length;i++)
241
				buffersCopy[i]=buffers[i];
242
			int k=buffers.length-1;
243
			for(int i=0; i<buffers.length;i++){
244
				buffers[i]=buffersCopy[k];
245
				k--;
246
			}
247
			int progress = 0;
248
			for(int band=0; band<numbands; band++){
249
				mosaicGrid.setBandToOperate(band);
250
				for(int col=0; col<mosaicGrid.getLayerNY(); col++){
251
					progress++;
252
					for(int row=0; row<mosaicGrid.getLayerNX();row++){
253
						setValueBack(row,col,band);
254
					}
255
					percent=(int)( progress*100/(mosaicGrid.getLayerNY()*numbands));
256
				}
257
			}
258
		}
259
		
233 260
		// Escritura en fichero
234 261
		writeToFile((RasterBuffer)mosaicGrid.getRasterBuf(),0);
235 262
	//	writeToFile((RasterBuffer)buffers[0],1);
......
344 371
	
345 372
	
346 373
	
374
	/**
375
	 *  M?todo que establece para la coordenada x,y el valor de la capa inferior
376
	 *  en caso de solape. Se parte de un array de buffer ordenados, de tal manera que
377
	 *  el primer elemento corresponde a la capa situada mas al frente. El ?ltimo por 
378
	 *  contra es el situado al fondo.
379
	 
380
	 *  @param cordenada x 
381
	 *  @param coordenada y  
382
	 * */
383
	public void setValueBack(int x, int y, int band){
384
		byte result=0;
385
		for(int buf=0;buf<buffers.length;buf++){
386
			result = (byte)(buffers[buf].getElemByte(y,x,band));
387
			// TO DO : Valor no data del buffer
388
			if(result!=97)
389
					break;
390
		}
391
		
392
		try {
393
				mosaicGrid.setCellValue(x,y,(byte)result);
394
		} catch (OutOfGridException e) {
395
				e.printStackTrace();
396
		}
397
	}
347 398
	
348

  
399
	
400
	
349 401
	/**
350 402
	 * M?todo que calcula el extend resultante para la operaci?n de mosaico
351 403
	 * 

Also available in: Unified diff