private static boolean edgeIntersectsCellBoundary(S2Point a,S2Point b,S2Cell cell){
  S2Point[] vertices=new S2Point[4];
  for (int i=0; i < 4; ++i) {
    vertices[i]=cell.getVertex(i);
  }
  for (int i=0; i < 4; ++i) {
    S2Point fromPoint=vertices[i];
    S2Point toPoint=vertices[(i + 1) % 4];
    if (lenientCrossing(a,b,fromPoint,toPoint)) {
      return true;
    }
  }
  return false;
}

private static boolean edgeIntersectsCellBoundary ( S2Point a , S2Point b , S2Cell cell ) { S2Point [ ] vertices = new S2Point [ 4 ] ; for ( int i = 0 ; i < 4 ; ++ i ) { vertices [ i ] = cell . getVertex ( i ) ; } for ( int i = 0 ; i < 4 ; ++ i ) { S2Point fromPoint = vertices [ i ] ; S2Point toPoint = vertices [ ( i + 1 ) % 4 ] ; if ( lenientCrossing ( a , b , fromPoint , toPoint ) ) { return true ; } } return false ; }
returns true if the edge and the cell ( including boundary ) intersect .
