question: 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 ) ; }
target:  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.