Есть две несколько стандартных структур данных, которые облегчают топологию-сетку. Один из них - Winged Edges (обычно называемый также half-edge), а другой - Directed Edges. Google вокруг, и вы получите кадзиллионы деталей, а также различные уровни в каждом из них.
Не знаю достаточно о вашем сценарии, чтобы рекомендовать один из них. Например, направленные ребра оптимизированы для хранения и наилучшим образом подходят для очень больших сеток. Крылатые края считаются «классическими» и являются хорошей отправной точкой для более продвинутых ароматов.
На самом деле, если вы уверены, что это единственный запрос, который вам нужен, то оба являются излишним, и вы отлично справляетесь с одним хэшем. Если, тем не менее, вам нужны эффективные ответы на запросы, такие как:
- Какие грани используют эту вершину?
- Какие края используют эту вершину?
- Какое лицо граничит с этим краем?
- Какие края граничат с этим лицом?
- Какие грани находятся рядом с этим лицо?
Вы должны рассмотреть возможность погружения в один из них.
Чтобы избежать людей, думающих, что вы просто собираете сбор, лучше всего 1) подождать некоторое время, прежде чем публиковать свой собственный ответ или 2) переместить этот ответ на исходный вопрос. –
@Scottie T: Автоответчики такого рода разрешены или даже поощряются faq. Я стараюсь сделать ответ CW beacuse, иначе он чувствует себя как игра TFGITW. Смотрите: http://stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-official-faq/119658#119658 – dmckee
Скотти, я понятия не имел, спасибо, что указали это. Я думаю, что теперь я больше не буду возиться с этим. –