Позалипал вчера в код и тесты, все таки не выйдет так взять и подключить как polypartition, библиотека не работает с невыпуклыми фигурами и с фигурами с дырками, придется либо вносить изменения в алгоритм (х.з. ещё насколько это костыльно будет), либо вырезать дырки из результата (что выглядит относительно не сложно, но все же запарно). На примету оставил. До meshoptimizer пока не дошли руки.
можно узнать в чём именно у вас сложности работы с вершинами, рёбрами и полигонами?
Просто мне кажется вы как то не так на них смотрите:
Вершина - это вектор, то есть обыкновенная точка с координатами (x,y) или (x,y,z).
Ребро - это соединительная линия между двумя вершинами, по сути она не сет никакой информации кроме направления (скорее Direction). Самой линии по сути нет, можно ссылаться на 2 вершины.
Треугольник - ссылается на 3 вершины и 3 ребра.
Полигон - ссылается на 1 или несколько Треугольников.
Материал - содержит путь до текстуры и список индексов Полигонов которые к нему относятся. Также может хранить UV развёртку по треугольникам (не полигонам).
Меш - это список ссылок на Материалы.
Бывает ещё кости и их анимация, там тоже ничего сложного.