Мне нужно прочитать список многоугольников из файла формата объектного файла (.off) (в C ++). Формат файлов .off в основном такой:
Header infomation x y z //co-ords for each vertex ... NVertices v1 v2 v3 ... vN //Number of vertices for each polygon, //followed by each vertex's index ...
Файлы .off допускают любое количество вершин на многоугольник, что подводит меня к моему вопросу. Как узнать, какие вершины с какими соединены? Например, если файл .off читается так:
Header stuff -0.500000 -0.500000 0.500000 0.500000 -0.500000 0.500000 -0.500000 0.500000 0.500000 0.500000 0.500000 0.500000 -0.500000 0.500000 -0.500000 0.500000 0.500000 -0.500000 -0.500000 -0.500000 -0.500000 0.500000 -0.500000 -0.500000 4 0 1 3 2 4 2 3 5 4 4 4 5 7 6 4 6 7 1 0 4 1 7 5 3 4 6 0 2 4
Многоугольники четырехсторонние, но не все вершины соединены. Если вы просто соедините каждую вершину друг с другом, вы получите четыре трехсторонних многоугольника вместо одного четырехстороннего многоугольника. Я надеялся, что вершины были перечислены аналогично нотации циклов, но я не могу найти никакой информации по этому поводу, так что думаю, что нет.
Итак, мой вопрос:
Есть ли какой-либо формат, который файлы .off используют для отображения этого соединения? Если нет, есть ли другой способ определить, какие вершины связаны в файле .off?