fixed NaN when finding horizon line
added clarifying comments and cleaned a bit
added new getviewpoint function that correctly optimizes over object heights.  also optimizes over labeled horizon lines. code is cleaner and simpler.
use new function for getviewpoint