private void addPolygonRing(LinearRing lr,int cwLeft,int cwRight){
  if (lr.isEmpty())   return;
  Coordinate[] coord=CoordinateArrays.removeRepeatedPoints(lr.getCoordinates());
  if (coord.length < 4) {
    hasTooFewPoints=true;
    invalidPoint=coord[0];
    return;
  }
  int left=cwLeft;
  int right=cwRight;
  if (CGAlgorithms.isCCW(coord)) {
    left=cwRight;
    right=cwLeft;
  }
  Edge e=new Edge(coord,new Label(argIndex,Location.BOUNDARY,left,right));
  lineEdgeMap.put(lr,e);
  insertEdge(e);
  insertPoint(argIndex,coord[0],Location.BOUNDARY);
}

private void addPolygonRing ( LinearRing lr , int cwLeft , int cwRight ) { if ( lr . isEmpty ( ) ) return ; Coordinate [ ] coord = CoordinateArrays . removeRepeatedPoints ( lr . getCoordinates ( ) ) ; if ( coord . length < 4 ) { hasTooFewPoints = true ; invalidPoint = coord [ 0 ] ; return ; } int left = cwLeft ; int right = cwRight ; if ( CGAlgorithms . isCCW ( coord ) ) { left = cwRight ; right = cwLeft ; } Edge e = new Edge ( coord , new Label ( argIndex , Location . BOUNDARY , left , right ) ) ; lineEdgeMap . put ( lr , e ) ; insertEdge ( e ) ; insertPoint ( argIndex , coord [ 0 ] , Location . BOUNDARY ) ; }
adds a polygon ring to the graph . empty rings are ignored . the left and right topological location arguments assume that the ring is oriented cw . if the ring is in the opposite orientation , the left and right locations must be interchanged .
