В начале алгоритма вы должны добавить оба конца сегмента в список событий.Во время развертки, когда происходят события, вы будете добавлять другие события (соответствующие пересечению сегментов).
В событии верхней точки вы добавляете сегменты в линию развертки.
В событии нижней точки выудаляются сегменты из линии развертки.
В событии пересечения вы меняете порядок сегментов в линии развертки.
При вставке, удалении или изменении порядка сегментов в линии развертки выследует проверить, есть ли новое пересечение.