Is (px,py) supposed to be the center of the face?  Then maybe specifying a radius (average of width and height?) might be better than length.