code: protected int selectSplitBetween(int indexStart, int indexEnd) {
  
  		Point2D_I32 a = contour.get(indexStart);
  		Point2D_I32 c = contour.get(indexEnd);
  
  		line.p.set(a.x,a.y);
  		line.slope.set(c.x-a.x,c.y-a.y);
  
  		int bestIndex = -1;
  		double bestDistanceSq = splitThresholdSq(contour.get(indexStart), contour.get(indexEnd));
  
  		// adjusting using 'minimumSideLengthPixel' to ensure it doesn't create a new line which is too short
  		int minLength = Math.max(1,minimumSideLengthPixel);// 1 is the minimum so that you don't split on the same corner
  		int length = indexEnd-indexStart-minLength;
  
  		// don't try splitting at the two end points
  		for( int i = minLength; i <= length; i++ ) {
  			int index = indexStart+i;
  			Point2D_I32 b = contour.get(index);
  			point2D.set(b.x,b.y);
  
  			double dist = Distance2D_F64.distanceSq(line, point2D);
  			if( dist >= bestDistanceSq ) {
  				bestDistanceSq = dist;
  				bestIndex = index;
  			}
  		}
  		return bestIndex;
  	}
docs: Finds the point between indexStart and the end point which is the greater distance from the line
  (set up prior to calling).  Returns the index if the distance is less than tolerance, otherwise -1