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

} // end of whichtoken // конец whichtoken

11««««« drawSceneOpenGL »»»»»»»».

void Scene :: drawSceneOpenGLО

{ //draw each object on object list

// рисуем каждый объект из списка объектов

for(GeomObj* р - obj: р : р - p->next) p->drawOpenGL(): //draw it

}
//«««««««< Scene :: read »»»»»»»»
bool Scene:: read(string fname)
// return true if ok: else false

// возвращаем true, если все ok: иначе false

{
file_in - new ifstream(fname.c_str()):
if(!(*file in))
{

cout « "I can't find or open file: " « fname « endl; //не могу найти или открыть файл return false;

}
f_in - new strstreamO: line - nextline - 1: def_stack - new DefUnitStackO; char ch:

freeSceneO: //delete any previous scene // удаляем любую предшествующую сцену // Initialize all for reading: // инициализируем все для чтения

obj - tail - NULL:
light - NULL:
affStk.tos - new AffineNode:
affStk.tos->next - NULL:

while (file_in->get(ch)) {*f_in « ch:} // read whole file // читаем весь файл

while(l)

//read file, collecting objects, until EOF or an error // читаем файл, собирая объекты, до конца файла или ошибки {

GeomObj * shp - getObjectO: // get the next shape // получаем следующую форму

if(lshp) break: // no object: either error or EOF // нет объекта: ошибка или конец файла

shp->next - NULL: // to be safe

1f(obj - NULL){ obj - tail - shp;} // empty list so far // список пока пуст

else{tail->next - shp: tail - shp:} // add new object to queue // добавляем новый объект в очередь

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

}
file_in->close():

cleanllpO: // delete temp lists, etc. // удаляем временные списки и т. д.

return true:
}

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

//««««««« Scene :: getObject >»»»»»»» GeomObj* Scene :: getObjectO

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