Дополнительная триангуляция меша
От: _vanger_  
Дата: 01.01.17 01:56
Оценка:
Есть такая задача (как часть решения другой). Имеется триангулированный меш, некоторые треугольники которого помечены. Надо разбить помеченные треугольники на четыре треугольника вот так:

   /\             /\
  /  \           /__\
 /    \   -->   /\  /\
/______\       /__\/__\


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

    ____               ____
   /\   |\            /\  /|\
  /  \  | \          /__\/ | \
 /    \ |  \  -->   /\  /\ |  \
/______\|___\      /__\/__\|___\


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

Есть ли библиотека на C/C++, полезная для этого дела? Пусть не непосредственно делающую вышескаанное (идеальный вариант), но предоставляющую удобный интерфейс для работы с такими типами данных (треугольники, смежность).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.