equals method
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;
}