docs: boolean isCornerValidOrigin( Node candidate ) {
  		candidate.putEdgesIntoList(edgeList);
  		if( edgeList.size() != 2 ) {
  			throw new RuntimeException("BUG! Should be a corner and have two edges");
  		}
  
  		Node a = edgeList.get(0);
  		Node b = edgeList.get(1);
  
  		// Find the average angle from the two vectors defined by the two connected nodes
  		double dirA = Math.atan2(a.y-candidate.y, a.x-candidate.x);
  		double dirB = Math.atan2(b.y-candidate.y, b.x-candidate.x);
  
  		double dirAB = UtilAngle.boundHalf(dirA+UtilAngle.distanceCCW(dirA,dirB)/2.0);
  
  		// Find the acute angle between the corner's orientation and the vector
  		double acute = UtilAngle.distHalf(dirAB,candidate.orientation);
  
  		return acute < Math.PI/4.0;
  	}