Sweep line algorithm