content: package edu.stanford.rsl.conrad.volume3d;
  
  
  /**
   * Class to wrap different FFT libraries
   * @author akmaier
   *
   */
  public abstract class FFTVolumeHandle {
  
  	protected boolean debug = false;
  
  	public FFTVolumeHandle(VolumeOperator operator){
  		this.operator = operator;
  	}
  
  	protected VolumeOperator operator;
  	/**
  	 * Performs a forward Fast Fourier Transform of the Volume
  	 * @param vol the Volume
  	 */
  	public abstract void forwardTransform(Volume3D vol);
  
  	/**
  	 * Performs a normalized inverse Fast Fourier Transform of the Volume
  	 * @param vol the Volume
  	 */
  	public abstract void inverseTransform(Volume3D vol);
  
  	public void setVolumeOperator(VolumeOperator operator){
  		this.operator = operator;
  	}
  
  	/**
  	 * Cleans up the memory. Relevant for FFT implementations which depend on native code.
  	 */
  	public abstract void cleanUp();
  
  	/**
  	 * Sets the maximal number of threads used for the FFT.
  	 * @param number
  	 */
  	public abstract void setThreadNumber(int number);
  
  }
  /*
   * Copyright (C) 2010-2014  Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */