docs: NodeInfo selectSeedCorner() {
  		NodeInfo best = null;
  		double bestScore = 0;
  		double minAngle = Math.PI+0.1;
  
  		for (int i = 0; i < contour.size; i++) {
  			NodeInfo info = contour.get(i);
  
  			if( info.angleBetween < minAngle )
  				continue;
  
  			Edge middleR = selectClosest(info.right,info,true);
  			if( middleR == null )
  				continue;
  			Edge middleL = selectClosest(info,info.left,true);
  			if( middleL == null )
  				continue;
  
  			if( middleL.target != middleR.target )
  				continue;
  
  			// With no perspective distortion, at the correct corners difference should be zero
  			// while the bad ones will be around 60 degrees
  			double r = UtilAngle.bound( middleR.angle + Math.PI);
  			double difference = UtilAngle.dist(r,middleL.angle);
  
  			double score = info.angleBetween - difference;
  
  			if( score > bestScore ) {
  				best = info;
  				bestScore = score;
  			}
  		}
  
  		if( best != null ) {
  			best.marked = true;
  		}
  		return best;
  	}