001    package org.hackystat.projectbrowser.page.trajectory.dtw.constraint;
002    
003    import java.awt.geom.Point2D;
004    
005    /**
006     * Defines the constraint function.
007     * 
008     * @author Pavel Senin.
009     * 
010     */
011    public abstract class AbstractConstraintFunction {
012    
013      /**
014       * Performs the next step given the cost matrix, current position and step function.
015       * 
016       * @param position the current position.
017       * @param costMatrix the cost matrix.
018       * @param constraints the constraints set.
019       * @return the next step position.
020       */
021      public abstract Point2D doStep(Point2D position, double[][] costMatrix,
022          AbstractConstraintFunction constraints);
023    }