У меня есть треугольная сетка, которая содержит миллионы треугольников. В настоящее время в моей структуре данных хранятся только треугольники и вершины. Я хочу реконструировать все края и сохранить их в контейнере для данных. Идея может быть похожа на следующее: пересечь все треугольники, получить каждые две его вершины и создать преимущество между ними. Вопрос в том, что общий край может быть создан дважды. Таким образом, чтобы преодолеть эту проблему, мне нужен контейнер данных EdgeContainer , чтобы сохранить края, и у него должна быть функция, чтобы проверить, был ли этот край уже создан. Так что это похоже на карту с несколькими ключами, но в соответствии с моим вопросом, эта карта также должна иметь следующие функции: < /p>
[*]
должен вернуть тот же результат, что и EdgeContainer (v2, v1) , где v1 и v2 являются указателями на две вершины.
[*]
должна иметь такую функцию, как EdgeContainer :: Remove (v1) , которая удалит все ребра, связанные с Vertex v1 .
Реализация должна быть как можно более эффективно.>
Подробнее здесь:
https://stackoverflow.com/questions/222 ... angle-mesh