void key(unsigned char key, int x, int y) { switch ( key ) { case 27: fprintf(stderr, "Start Destruction\n\n"); rentravact = NULL; hdrroot = NULL; root = NULL; file = NULL; cam = NULL; vp = NULL; win = NULL; cam_trans = NULL; scene_trans = NULL; pAnimTrs[0] = NULL; pAnimTrs[1] = NULL; pAnimTrs[2] = NULL; pAnimTrs[3] = NULL; pAnimTrs[4] = NULL; pAnimTrs[5] = NULL; OSG::osgExit(); exit(0); case 'a': glDisable( GL_LIGHTING ); std::cerr << "Lighting disabled." << std::endl; break; case 's': glEnable( GL_LIGHTING ); std::cerr << "Lighting enabled." << std::endl; break; case 'r': { std::cerr << "Sending ray through " << x << "," << y << std::endl; OSG::Line l; cam->calcViewRay( l, x, y, *vp ); std::cerr << "From " << l.getPosition() << ", dir " << l.getDirection() << std::endl; } break; case 'd': OSG::ActionDataSlotPool::the()->dumpState(); OSG::StageIdPool ::the()->dumpState(); rentravact->dumpStore(); break; case ' ': { OSG::Matrix m; OSG::Quaternion q; OSG::Vec3f v; q = oldq; v = oldv; oldq = tball.getRotation(); oldv = tball.getPosition(); move_obj = ! move_obj; if ( move_obj ) { puts("moving object"); tball.setMode( OSG::Trackball::OSGCamera ); } else { puts("moving camera"); tball.setMode( OSG::Trackball::OSGObject ); } tball.setStartPosition( v, true ); tball.setStartRotation( q, true ); } break; } }
void key(unsigned char key, int x, int y) { switch ( key ) { case 27: fprintf(stderr, "Start Destruction\n\n"); rentravact = NULL; hdrroot = NULL; root = NULL; // file = NULL; cam = NULL; vp = NULL; win = NULL; cam_trans = NULL; scene_trans = NULL; pAnimTrs[0] = NULL; pAnimTrs[1] = NULL; pAnimTrs[2] = NULL; pAnimTrs[3] = NULL; pAnimTrs[4] = NULL; pAnimTrs[5] = NULL; OSG::osgExit(); exit(0); case 'a': glDisable( GL_LIGHTING ); std::cerr << "Lighting disabled." << std::endl; break; case 's': glEnable( GL_LIGHTING ); std::cerr << "Lighting enabled." << std::endl; break; case 'r': { std::cerr << "Sending ray through " << x << "," << y << std::endl; OSG::Line l; cam->calcViewRay( l, x, y, *vp ); std::cerr << "From " << l.getPosition() << ", dir " << l.getDirection() << std::endl; } break; case 'g': hdrroot->setCore(OSG::Group::create()); break; case 'h': createHDRCore(hdrroot); break; case 'd': OSG::ActionDataSlotPool::the()->dumpState(); OSG::StageIdPool ::the()->dumpState(); rentravact->dumpStore(); break; case ' ': { OSG::Matrix m; OSG::Quaternion q; OSG::Vec3f v; q = oldq; v = oldv; oldq = tball.getRotation(); oldv = tball.getPosition(); move_obj = ! move_obj; if ( move_obj ) { puts("moving object"); tball.setMode( OSG::Trackball::OSGCamera ); } else { puts("moving camera"); tball.setMode( OSG::Trackball::OSGObject ); } tball.setStartPosition( v, true ); tball.setStartRotation( q, true ); } break; case '1': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::SCENE_TEXTURE); } break; case '2': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::LUMINANCE_TEXTURE); } break; case '3': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::ADAPTED_LUMINANCE_TEXTURE); } break; case '4': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::THRESHOLD_TEXTURE); } break; case '5': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::BLURRED_TEXTURE); } break; case '6': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::COMPOSITE_TEXTURE); } break; case '7': { OSG::HDR2Stage* pHDR = dynamic_cast<OSG::HDR2Stage*>(hdrroot->getCore()); if (pHDR) pHDR->setTarget(OSG::HDR2Stage::EXPOSURE_TEXTURE); } break; } }