content: package edu.stanford.rsl.conrad.volume3d.operations;
  
  public class AddSlabs extends ParallelVolumeOperation {
  
  	@Override
  	public void performOperation() {
  			
  			switch (vol1.getInternalDimension()) {
  			case 1:
  				for (int indexX=beginIndexX; indexX<endIndexX; indexX++) {
  					for (int indexY=0; indexY<vol1.size[1]; indexY++) {
  						for (int indexZ=0; indexZ<vol1.size[2]; indexZ++) {	
  							vol1.data[indexX][indexY][indexZ] +=  vol2.data[indexX][indexY][indexZ] * scalar1;
  						}
  					}
  				}
  				break;
  
  			case 2:
  
  				for (int indexX=beginIndexX; indexX<endIndexX; indexX++) {
  					for (int indexY=0; indexY<vol1.size[1]; indexY++) {
  						for (int indexZ=0; indexZ<vol1.size[2]; indexZ++) {	
  							//System.out.println(indexY + " " + indexZ);
  							vol1.data[indexX][indexY][indexZ*2] +=  vol2.data[indexX][indexY][indexZ*2] * scalar1;
  							vol1.data[indexX][indexY][(indexZ*2)+1] +=  vol2.data[indexX][indexY][(indexZ*2)+1] * scalar1;
  						}
  					}
  				}
  
  				break;
  
  			default:
  				System.out.println("vol_div: Invalid dimension\n");
  			}
  		
  	}
  
  	@Override
  	public ParallelVolumeOperation clone() {
  		return new AddSlabs();
  	}
  
  }
  /*
   * Copyright (C) 2010-2014  Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */