We introduce the visibility complex (a 2-dimensional regular cell complex) of a collection of n pairwise disjoint convex obstacles in the plane. It can be considered as a subdivision of the set of free rays (i.e., rays whose origins lie in free space, the complement of the obstacles). Its cells correspond to collections of rays with the same backward and forward views. The combinatorial complexity of the visibility complex is proportional to the number k of free bitangents of the collection of obstacles. We give an O(n log n+k) time and O(k) working space algorithm for its construction. Furthermore we show how the visibility complex can be used to compute the visibility polygon from a point in O(m log n) time, where m is the size of the visibility polygon. Our method is based on the notions of pseudotriangle and pseudo-triangulation, introduced in this paper.
Read full abstract