void key(unsigned char key, int x, int y) { switch ( key ) { case 27: win = NULL; cam_trans = NULL; pPoly = NULL; pCOver = NULL; pAlgo = NULL; rentravact = NULL; OSG::osgExit(); exit(0); case 'v': rentravact->setVolumeDrawing(!rentravact->getVolumeDrawing()); break; case 'z': pPoly->setFrontMode(GL_POINT); pPoly->setBackMode(GL_POINT); std::cerr << "PolygonMode: Point." << std::endl; break; case 'x': pPoly->setFrontMode(GL_LINE); pPoly->setBackMode(GL_LINE); std::cerr << "PolygonMode: Line." << std::endl; break; case 'c': pPoly->setFrontMode(GL_FILL); pPoly->setBackMode(GL_FILL); std::cerr << "PolygonMode: Fill." << std::endl; break; case 'p': { if(bPolyActive == true) { OSG_ASSERT(pCOver->subChunk(pPoly) == true); bPolyActive = false; } else { OSG_ASSERT(pCOver->addChunk(pPoly) == true); bPolyActive = true; } break; } case 'w': pAlgo->setStepsize(pAlgo->getStepsize() + (1.0/2048.0)); if(pAlgo->getStepsize() > 0.25) pAlgo->setStepsize(0.25); break; case 'e': pAlgo->setStepsize(pAlgo->getStepsize() - (1.0/2048.0)); if(pAlgo->getStepsize() <= 1.0/200.0) pAlgo->setStepsize(1.0/200.0); break; case 'd': pAlgo->setToggleVisuals(!pAlgo->getToggleVisuals()); break; default: break; } }