/
maps/
package mapmaker;

import java.awt.*;

/** implements partial order defined by
 * (a < b) <=> (scalar(a-b, dir) < 0)
 * where a, b are vectors, dir a constant vector
 */
public class DirComparer extends PartialComparer {

  Point dir;

  public DirComparer(Point dir) {
    this.dir = dir;
  } // DirComparer

  int pointScalar(Point p) {
    return (dir.x * p.x) + (dir.y * p.y);
  } // pointScalarx

  /** @param a must be of class Point
   * @param b must be of class Point
   */
  public boolean less(Object a, Object b) {
    Point differ = new Point(((Point)a).x - ((Point)b).x, 
			     ((Point)a).y - ((Point)b).y);
    return pointScalar(differ) < 0;
  } // less

}