isRingCCW method

bool isRingCCW(
  1. List<Coordinate> coord
)

Computes orientation of a ring using a signed-area orientation test. For invalid (self-crossing) rings this ensures the largest enclosed area is taken to be the interior of the ring. This produces a more sensible result when used for repairing polygonal geometry via buffer-by-zero. For buffer use the lower robustness of orientation-by-area doesn't matter, since narrow or flat rings produce an acceptable offset curve for either orientation.

@param coord the ring coordinates @return true if the ring is CCW

Implementation

bool isRingCCW(List<Coordinate> coord) {
  bool isCCW = Orientation.isCCWArea(coord);
  //--- invert orientation if required
  if (isInvertOrientation) return ! isCCW;
  return isCCW;
}