compare static method
Compares two {@link Coordinate}s for their relative position along a segment lying in the specified {@link Octant}.
@return -1 node0 occurs first; 0 the two nodes are equal; 1 node1 occurs first
Implementation
static int compare(int octant, Coordinate p0, Coordinate p1) {
// nodes can only be equal if their coordinates are equal
if (p0.equals2D(p1)) return 0;
int xSign = relativeSign(p0.x, p1.x);
int ySign = relativeSign(p0.y, p1.y);
switch (octant) {
case 0:
return compareValue(xSign, ySign);
case 1:
return compareValue(ySign, xSign);
case 2:
return compareValue(ySign, -xSign);
case 3:
return compareValue(-xSign, ySign);
case 4:
return compareValue(-xSign, -ySign);
case 5:
return compareValue(-ySign, -xSign);
case 6:
return compareValue(-ySign, xSign);
case 7:
return compareValue(xSign, -ySign);
}
Assert.shouldNeverReachHere("invalid octant value");
return 0;
}