inStream » face[f].vert[kk].normIndex;
}
inStream.closeO;
}

// end of readMesh // конец readMesh

//««««««««««« drawMesh »»»»»»»»»»
void Mesh :: drawMeshO
{

// draw each face of this mesh using OpenGL: draw each polygon. // рисуем каждую грань данной сетки при помощи OpenGL // рисуем каждый полигон

if(isEmptyO) return: // mesh is empty // сетка пуста

fordnt f - 0: f < numFaces; f++)
{
int n - face[f].nVerts: gl Begi n(GL_P0LYG0N): fordnt v - 0: v < n; v++) {
int in - face[f].vert[v].normIndex;
assertdn >» 0 && in < numNorms):
gl Normal3f(norm[in].x. norm[in].y. norm[in].z):
int iv - face[f].vert[v].vertlndex: assertdv >- 0 && iv < numVerts);
glVertex3f(pt[iv].x. pt[iv].y. pt[iv].z);
}
glEndO:
}
glFlushO:
}
//«««««««««««««« wri te mesh»»>»»»»»»»»»»»»»»
void Mesh:: writeMesfHchar * fname)
{
// write this mesh object into a new Chapter 6 format file.

Приложение В. Некоторые полезные классы и служебные подпрограммы

// записываем данный объект mesh в файл нового формата // из главы б

if(numVerts - 0 || numNorms - 0 || numFaces - 0) return: // empty // пусто

fstream outStream(fname. ios ::out): // open the output stream // открываем поток вывода

if(outStream.failO) {cout « "can't make new file: " « fname « endl: // не могу открыть новый файл

return:}

outStream « numVerts « " " « numNorms « " " « numFaces «"\n": // write the vertex and vertex normal list // записываем список вершин и нормалей в вершинах

for(int i - 0: i < numVerts: i++)
outStream « pt[i].x « " " « pt[i].y « " " « pt[1].z « "\n":
fordnt ii - 0; 11 < numNorms: 1i++)

⇐ Предыдущая| |Следующая ⇒