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 }