void SGModels::DrawModel(Id id) { int slices = 100; if(id <= Id::ModelsEnd && id >= Id::ModelsStart){ switch(id){ case Id::ModelPlane: TPlane().Draw(slices); break; case Id::ModelTorus: TTorus().Draw(slices); break; case Id::ModelSphere: TSphere().Draw(slices); break; case Id::ModelConic: TConic().Draw(slices); break; case Id::ModelTrefoil: TTrefoil().Draw(slices); break; case Id::ModelKlein: TKlein().Draw(slices); break; default: break; } } }
void drawKlein() { static int init = 0; static GLuint kleinListID; if(!init) { init = 1; kleinListID = glGenLists(1); glNewList(kleinListID, GL_COMPILE); TKlein().Draw(35); glEndList(); } glCallList(kleinListID); }