首先要做的是读取ply文件,我们通过打开notepad++查看ply文件可以看到如上格式。有用的是第四行的37702代表顶点数量,11行的75404,代表面数。所以我们设置了如下的读取代码(非常地暴力)
char ch[50];
ifstream in("lizhenxiout-repaired.ply");
bool www = in.fail();
for (int i = 0; i < 3; i++)
in.getline(ch, 50);
in >> ch;
in >> ch;
in >> ch;
v_num = atoi(ch);
for (int i = 0; i < 7; i++)
in.getline(ch, 50);
in >> ch;
in >> ch;
in >> ch;
index_num = atoi(ch);
for (int i = 0; i < 2; i++)
in.getline(ch, 50);
in.getline(ch, 50);
接着我们将数据读入顶点数组v_arr,面索引index_arr,并根据面索引数组初始化三角形线框绘制数组index_line_arr。
v_arr = new Vertex[v_num];
index_arr =