import java.awt.Graphics;

import WTrsf;

public class WEdge extends Object
{
  public WPoint p1;
  public WPoint p2;
  public WEdge (WPoint ap1, WPoint ap2)
  {
    p1 = ap1;
    p2 = ap2;
  }
  public boolean equals(Object r)
  {
    WEdge q = (WEdge) r;
    return ((r instanceof WEdge) &&
            ((p1 == q.p1) && (p2 == q.p2) || (p1 == q.p2) && (p2 == q.p1)));
  }
  public int hashCode()
  {
    return p1.hashCode() + p2.hashCode();
  }
  public void paint (Graphics g, WTrsf t, WEdge w)
  {
    if (p2!=null)
      g.drawLine (t.x(p1.x), t.y(p1.y), t.x(p2.x), t.y(p2.y));
    else
      {
        double dx = -(w.p2.y - w.p1.y);
        double dy = (w.p2.x - w.p1.x);
        double v = 1000 / Math.sqrt(dx * dx + dy * dy);
        dx *= v;
        dy *= v;
        g.drawLine (t.x(p1.x), t.y(p1.y), t.x(p1.x) + (int) dx, t.y(p1.y) + (int) dy);                  
      }
  }
}

