equals method

bool equals(
  1. Object o
)

equals is defined to be:

e1 equals e2 iff the coordinates of e1 are the same or the reverse of the coordinates in e2

Implementation

bool equals(Object o) {
  if (!(o is Edge)) return false;
  Edge e = o;

  if (pts.length != e.pts.length) return false;

  bool isEqualForward = true;
  bool isEqualReverse = true;
  int iRev = pts.length;
  for (int i = 0; i < pts.length; i++) {
    if (!pts[i].equals2D(e.pts[i])) {
      isEqualForward = false;
    }
    if (!pts[i].equals2D(e.pts[--iRev])) {
      isEqualReverse = false;
    }
    if (!isEqualForward && !isEqualReverse) return false;
  }
  return true;
}