If the visibility polygon is bounded then it is a star-shaped polygon. This is the case, e.g., if the obstacles are the edges of a polygon and p is inside the polygon. In the latter case the visibility polygon may be found in linear time.
http://web.informatik.uni-bonn.de/I/GeomLab/VisPolygon/index.html.en (visibility in simple polygons - applets)
- VisiLibity: A free open source C++ library of floating-point visibility algorithms and supporting data types, calculates visibility polygons in polygonal environments with polygonal holes