code: protected int selectFarthest( List<Point2D_I32> contour ) {
  		int bestIndex = -1;
  		int bestDistance = 0;
  
  		int N = contour.size();
  		int half = N/2;
  
  		for( int i = 0; i < half; i++ ) {
  
  			int end = (i+half)%N;
  
  			Point2D_I32 a = contour.get(i);
  			Point2D_I32 b = contour.get(end);
  
  			int dist = UtilPoint2D_I32.distanceSq(a.x,a.y,b.x,b.y);
  			if( bestDistance < dist ) {
  				bestIndex = i;
  				bestDistance = dist;
  			}
  		}
  
  //		if( bestIndex == -1 )
  //			System.out.println();
  
  		return bestIndex;
  	}
docs: Computes the distance between pairs of points which are separated by 1/2 the contour list. The index of the
  first pixel in the pair with the greatest distance is returned
  @return Index of the first pixel which should be used to split the list.  The other end is ret + N/2