package edu.stanford.rsl.conrad.pipeline; import java.io.IOException; import edu.stanford.rsl.conrad.data.numeric.Grid2D; /** * Interface to model an arbitrary projection source * * @author akmaier * */ public interface ProjectionSource { /** * Initializes the the ProjectionSource. This can either be a filename or a String that describes how to initialize the source. * * @param filename the name of the file to read * @throws IOException may happen */ public void initStream(String filename) throws IOException; /** * Writes the next projection into an IndividualImagePipelineFiltering tool, i.e. reads the projection and sets the right projection number in a synchornized manner. * <BR> * @param tool the tool to write to */ public void getNextProjection(IndividualImagePipelineFilteringTool tool); /** * Returns the current projection number * @return the number * * @see #getNextProjection() * @see #getNextProjection(IndividualImagePipelineFilteringTool tool) */ public int getCurrentProjectionNumber(); /** * Returns the next projection. Note that this call may be out of sync with getCurrentProjectionNumber() * @return the projection * * @see #getCurrentProjectionNumber() * @see #getNextProjection(IndividualImagePipelineFilteringTool tool) */ public Grid2D getNextProjection(); } /* * Copyright (C) 2010-2014 Andreas Maier * CONRAD is developed as an Open Source project under the GNU General Public License (GPL). */