isRectangle method
Tests whether this is a rectangular {@link Polygon}.
@return true if the geometry is a rectangle.
Implementation
bool isRectangle() {
if (getNumInteriorRing() != 0) return false;
if (shell == null) return false;
if (shell!.getNumPoints() != 5) return false;
CoordinateSequence seq = shell!.getCoordinateSequence();
// check vertices have correct values
Envelope env = getEnvelopeInternal();
for (int i = 0; i < 5; i++) {
double x = seq.getX(i);
if (!(x == env.getMinX() || x == env.getMaxX())) return false;
double y = seq.getY(i);
if (!(y == env.getMinY() || y == env.getMaxY())) return false;
}
// check vertices are in right order
double prevX = seq.getX(0);
double prevY = seq.getY(0);
for (int i = 1; i <= 4; i++) {
double x = seq.getX(i);
double y = seq.getY(i);
bool xChanged = x != prevX;
bool yChanged = y != prevY;
if (xChanged == yChanged) return false;
prevX = x;
prevY = y;
}
return true;
}