Я хочу загрузить файл coff (меш с цветом), используя CGAL :: read_OFF (). и следующей попыткой будет объединить эту информацию в переменную сетки (что-то похожее на функцию polygon_soup_to_polygon_mesh, но не уверен в этом, потому что эта команда также не поддерживает информацию о цвете).
Знаете ли вы, как я могу прочитать файл COFF и объединить их в сетку, которая содержит информацию о цвете?
bool
read_OFF( std::istream& in,
std::vector< Point_3 >& points,
std::vector< Polygon_3 >& polygons,
std::vector<Color_rgb>& fcolors,
std::vector<Color_rgb>& vcolors,
bool /* verbose */ = false)
а потом
Вот пример файла COFF, который я хочу загрузить:
COFF
12 12 0
-0.4 -4.898587e-17 0.85 158 138 122 255
-0.4 -4.898587e-17 -0.9 255 0 122 255
0.4 4.898587e-17 -0.9 0 255 122 255
0.4 4.898587e-17 0.85 158 138 122 255
-0.4 -1.2 0.85 158 0 255 255
-0.4 -1.2 -0.9 158 138 122 255
0.4 -1.2 -0.9 158 138 122 255
0.4 -1.2 0.85 158 138 122 255
-0.4 -1.2 0.85 158 138 122 255
-0.4 -1.2 -0.9 100 255 0 255
0.4 -1.2 -0.9 222 0 122 255
0.4 -1.2 0.85 222 0 122 255
3 3 1 0
3 3 2 1
3 1 4 0
3 5 4 1
3 2 5 1
3 6 5 2
3 7 2 3
3 7 6 2
3 4 3 0
3 4 7 3
3 9 11 8
3 10 11 9
Вы можете использовать структуру данных Surface_mesh, она имеет функцию read_off (), которая поддерживает файлы COFF, которая вызывается оператором >> ().
Итак, определите Surface_mesh (Point_3), давайте назовем его sm
, поток вашего файла COFF, давайте назовем его is
и позвоните
is>>sm;
Это должно заполнить ваш surface_mesh сеткой и правильными цветами. В случае вашего примера, цвета будут в каждой вершине.
Других решений пока нет …