outStream « norm[1i].x « " " « norm[ii].y « " " « norm[ii].z « "\n": // write the face data // записываем данные по грани

fordnt f - 0: f < numFaces: f++)
{
1nt n - face[f].nVerts: outStream « n « "\n"; fordnt v - 0: v < n: v++)
// write vertex indices for this face

// записываем индексы вершин для данной грани

outStream « face[f].vert[v].vertlndex « " ": outStream « "\n": fordnt k - 0: k < n: k++) // write normal indices for this face // записываем индексы нормалей для данной грани

outStream « face[f].vert[k].normIndex « " ": outStream « "\n":
}

outStream.сloseО:

}

// Scene methods // методы Scene

methods »»»»»> string Scene : nexttoken(void) nexttokenO {
char c:
string token;
int lastchar - 1:
if (!f_in) {return(token): }
if (f_in->eof()) {return(token);}
while (f in->get(c))
{
if (f_1n->eof()> {
return(token):
}
switch (c) {
case '\n': nextline +» 1: case ' " :

ВЗ. Класс SCENE и сопутствующие классы

case '\f: case '\а': case *\b': case '\v': case *\f: case *\r": {

if ( lastchar - 0 ) {return(token):}break; } case '{': {

token - c: return(token): break:} case '}': {
token - c:
return(token);
break; } case '!': {

while ( с !« *\n' && f in->get(c)) {

}
nextline++: break;} default: {
token - token + c: lastchar - 0:

if ((f_in->peek() - '{') II

(f_in->peek() - '}') ) { if ( lastchar - 0 ) {

return(token): } else {
f_1n->get(c): token - c: return(token):
}
}
line - nextline: }
} }
returnC "):
}
//««««««« getFloat »»»»»»»»
float Scene :: getFloatO getFloatO
{
strstream trap:
float number:
string str - nexttokenO:
tmp « str:
1f(!(tmp » number))
{

cerr « "Line " « line « ": error getting float" « endl: // ошибка получения вещественного числа •exit(-l):


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