This paper presents a simple and fast algorithm for computing union, intersection, difference and symmetrical difference of boundary represented polygonal regions in the plane. The algorithm explicitly copes with degenerate cases and vertices of high degree so that the output of the algorithm satisfies its input restrictions. An expected running time of the algorithm is O(n log*n + k + z log n), where n (respectively z) is the total number of edges (respectively contours) in polygons describing input regions and k is the number of intersections between the edges. The presented algorithm outperforms most of known algorithms for polygon set operations and is relatively easy to implement.