Given a set of simple obstacle polygons, build a visibility graph and find the shortest path between two points.