content: /*
   * Copyright (C) 2010-2014 Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */
  package edu.stanford.rsl.conrad.io;
  
  import edu.stanford.rsl.conrad.numerics.SimpleMatrix;
  import edu.stanford.rsl.conrad.numerics.SimpleVector;
  import ij.io.FileInfo;
  
  public class NrrdFileInfo extends FileInfo {
  	public int dimension=0;
  	public int[] sizes;
  	public String encoding="";
  	public String[] centers=null;
  	public double[] spacing;
  	private SimpleVector spaceOrigin;
  	private SimpleMatrix spaceDirections;
  	
  	/**
  	 * Getter for the space directions. Assures that both, the space direction matrix or the spacing array have been allocated and set.
  	 * If either of those is null, the default value which is one is used for all directions.
  	 * @return The space direction matrix.
  	 */
  	public SimpleMatrix getSpaceDirections() {
  		if(spacing == null){
  			this.spacing = new double[dimension];
  			for(int i = 0; i < dimension; i++){
  				spacing[i] = 1;
  			}
  		}
  		if(this.spaceDirections == null){
  			this.spaceDirections = new SimpleMatrix(dimension, dimension);
  			for(int i = 0; i < dimension; i++){
  				spaceDirections.setElementValue(i, i, spacing[i]);
  			}
  		}
  		return spaceDirections;
  	}
  	
  	public void setSpaceDirections(SimpleMatrix spaceDirections) {
  		this.spaceDirections = spaceDirections;
  	}
  	
  	/**
  	 * Getter for the space origin. If it hasn't been set before, uses the default value which is (0,0,0).
  	 * @return
  	 */
  	public SimpleVector getSpaceOrigin() {
  		if(spaceOrigin == null){
  			spaceOrigin = new SimpleVector(dimension);
  		}
  		return spaceOrigin;
  	}
  	public void setSpaceOrigin(SimpleVector spaceOrigin) {
  		this.spaceOrigin = spaceOrigin;
  	}
  
  	// Additional compression modes for fi.compression
  	public static final int GZIP = 1001;
  	public static final int ZLIB = 1002;
  	public static final int BZIP2 = 1003;
  	
  	// Additional file formats for fi.fileFormat
  	public static final int NRRD = 1001;
  	public static final int NRRD_TEXT = 1002;
  	public static final int NRRD_HEX = 1003;
  	
  	
  	
  
  }
  