A generic solution to polygon clipping