An algorithm for polygon clipping, and for determining polygon intersections and unions

This paper introduces a universal algorithm for polygon clipping, which is a frequent operation in GIS. In the proposed solution, the clipping polygons can be concave and may include holes. This algorithm is based on so-called entry/exit intersection point property, which has to be explicitly determined only at the first calculated intersection point. It uses a simple but efficient data structure based on a single-linked list. Boolean union and the difference between input polygons can also be determined after small modifications. This algorithm can easily be adapted to Boolean operations between regions composed of polygon sets.