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