implemented MonotonePolygon (untested)