Как обрабатывать несвязные грани с одной и той же вершиной для структуры с половиной ребер? - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь реализовать структуру половинного края. Это выглядит так:

вершина:

  • ребро

  • позиция

край:

  • вершина

  • грань

  • предыдущий край

  • следующий край

  • двойной край

грань:

  • кромка

теперь я заметил проблему, когда у me sh есть две несвязные грани, которые разделяют одну вершину. Например, в случае, если все ребра-близнецы равны нулю. В этом случае я не могу найти все ребра из вершины больше.

изображение проблемного случая.

На изображении вершина в середине имеет только ссылку на край белой грани. Черное лицо не достижимо. Как я могу сделать это возможным с половиной структуры края?

1 Ответ

0 голосов
/ 03 февраля 2020

Структура данных с половиной ребра позволяет только представлять поверхности многообразия, поэтому такая конфигурация недопустима ....

... но если вы добавите неограниченную грань, поверхность станет многообразной, и вы сможете опишите эту конфигурацию. Обычно это решение используется в основной библиотеке, которая реализует структуры данных HDS.

С этой неограниченной гранью у каждого ребра есть два пол ребра (больше нет нулевого двойника), и вам нужен способ дифференциации пол ребра, которые принадлежат неограниченной грани, и другие пол ребра (иногда неограниченные пол ребра имеют нулевую грань).

Последнее замечание: если у вас есть несколько связанных компонентов, у вас будет несколько неограниченных граней.

...