//не определено
return NULL:
}
cout « def_stack->contents(name) « endl:
strstream *temp_fin - new strstream:
*temp_fin « def_stack->contents(name) « " ";
*temp_fin « f_in->rdbuf():
delete (f_in);
f_in » temp_fin:
break: } // end of case: USE // конец случая USE
default: { // inner switch for Shapes // внутренний переключатель для Shapes
switch(typ)
{
case CUBE: newShape - new Cube:break: case SPHERE: newShape = new Sphere:break; case TETRAHEDRON:
newShape = new Mesh("tetra.3vn"):break; case TORUS: newShape = new Torus:break: case PLANE: newShape - new Plane;break; case SQUARE: newShape - new Square:break: case TAPEREDCYLINDER: newShape = new TaperedCylіnder:
((TaperedCylinder*)newShape)->smallRadius - getFloatO: break; case CONE: newShape - new TaperedCylіnder;
((TaperedCylіnder*)newShape)->smallRadius » 0: break: case CYLINDER: newShape - new TaperedCylіnder;
(CTaperedCylinder*)newShape)->smallRadius = 1; break: case OCTAHEDRON:
newShape = new Mesh("octa.3vn");break: case DODECAHEDRON:newShape - new Mesh("dodeca.3vn");
break:
case ICOSAHEDRON:newShape = new Mesh("icosa.3vn"): break: case BUCKYBALL: newShape - new Mesh("bucky.3vn"): break; case DIAMOND: newShape = new Mesh("diamond.3vn"): break; case TEAPOT: newShape = new Teapot: break: case MESH: {
// get a filename (with extension) for this mesh
// получаем имя файла (с расширением) для данной сетки
string fname = nexttokenO; // get file name for mesh // получаем имя файла для сетки
newShape - new Mesh(fname): break:
}
// end of case: MESH // конец случая MESH default: {
32 Ф. Хилл Приложение В. Некоторые полезные классы и служебные подпрограммы
сегг « "Line " « nextline « ": unknown keyword " « s « endl: // неизвестное ключевое слово в строке… return NULL: }
}
// end of inner switch // конец внутреннего переключателя // common things to do to all Shape's // общие вещи для всех Shapes