Техническое задание: Алгоритм обратной триангуляции

Необходимо разработать программное решение для обработки 3D-моделей, реализующее алгоритм обратной триангуляции.

Цель проекта

Создать функционал, который преобразует представление 3D-объекта из полигональной сетки обратно в базовое представление - массив вершин и массив полигонов (индексов).

Структуры данных

В работе необходимо использовать следующие типы данных:

  • Object3D - основной объект, содержащий:
    • vertices: Массив вершин типа Vertex.
    • polygons: Массив полигонов типа Polygon.
  • Vertex: Вершина, заданная кортежем из трех чисел [number, number, number] (координаты x, y, z).
  • Polygon: Полигон, заданный массивом чисел number[]. Каждое число представляет собой индекс вершины из массива vertices, составляющей данный полигон.

Основные требования

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

Ожидаемый результат

Готовое программное решение (функция/модуль), принимающее на вход данные в описанном формате и выполняющее требуемое преобразование.