Я использую PyGTS для построения предметной 3D-геометрии. У него нет привязки к триангуляционным функциям GTS, поэтому я использую poly2try. Я триангулирую копланарный многоугольник с 6 вершинами, затем фильтрую его ребра по числу граней, которым они принадлежат, таким образом я получаю исходный контур многоугольника, но с ребрами, уже прикрепленными к граням.
Следующим шагом является «выдавливание» этих ребер вдоль оси Z. Для работы логических операций PyGTS необходимо повторно использовать все ребра и объект должен быть закрыт (ребро, принадлежащее только одной грани). Поэтому я хочу перебрать контуры моего контура и создать стороны выдавливания, повторно использовать исходный край многоугольника, еще 3 и сохранить один из них для повторного использования в следующей итерации. Чтобы это работало, эти края контура необходимо отсортировать так, чтобы: e1.v2 = e2.v1 и e2.v2 = e3.v1 и т. Д.
Как мне отсортировать края контура? Исходная сортировка теряется при триангуляции базового многоугольника.