View Javadoc
1   package com.github.celldynamics.quimp.plugin.snakes;
2   
3   import com.github.celldynamics.quimp.Snake;
4   import com.github.celldynamics.quimp.plugin.IQuimpCorePlugin;
5   import com.github.celldynamics.quimp.plugin.QuimpPluginException;
6   
7   /**
8    * General interface that defines filter run on Snakes directly.
9    * 
10   * <p>Modification of Node object that form Snake should be done with carefulness. Read
11   * documentation
12   * for Snake
13   * 
14   * @author p.baniukiewicz
15   * @see com.github.celldynamics.quimp.plugin.engine.PluginFactory
16   * @see com.github.celldynamics.quimp.Snake
17   */
18  public interface IQuimpBOASnakeFilter extends IQuimpCorePlugin {
19  
20    /**
21     * Runs filter and return filtered points in the same order as input points.
22     * 
23     * <p>Number of returned points can be different.
24     * 
25     * <p><b>Warning</b>
26     * 
27     * <p>Plugin may be run without attached data. Plugin must deal with this
28     * 
29     * @return Filtered points
30     * @throws QuimpPluginException on any problems during filter execution
31     */
32    Snake runPlugin() throws QuimpPluginException;
33  
34    /**
35     * Attach processed data to plugin.
36     * 
37     * <p>This method allows to process data by plugin without running it what is important e.g. for
38     * visualizing.
39     * 
40     * <p><b>Warning</b>
41     * 
42     * <p>Plugin may be run without attached data. Plugin must deal with this
43     * 
44     * @param data snake to connect
45     */
46    void attachData(final Snake data);
47  }