// Mouse buttons void mouseButtonCB( int button, int state, int x, int y ) { if (window.valid()) { if (state==0) window->getEventQueue()->mouseButtonPress( x, y, button+1 ); else window->getEventQueue()->mouseButtonRelease( x, y, button+1 ); } }
// Mouse movements void mouseMoveCB( int x, int y ) { if (window.valid()) { window->getEventQueue()->mouseMotion( x, y ); } }
// Reshaping the window void reshapeCB( int w, int h ) { // Update the window dimensions, in case the window has been resized. if (window.valid()) { window->resized(window->getTraits()->x, window->getTraits()->y, w, h); window->getEventQueue()->windowResize(window->getTraits()->x, window->getTraits()->y, w, h ); } }
void keyboard( unsigned char key, int /*x*/, int /*y*/ ) { switch( key ) { case 27: // clean up the viewer if (viewer.valid()) viewer = 0; glutDestroyWindow(glutGetWindow()); break; default: if (window.valid()) { window->getEventQueue()->keyPress( (osgGA::GUIEventAdapter::KeySymbol) key ); window->getEventQueue()->keyRelease( (osgGA::GUIEventAdapter::KeySymbol) key ); } break; } }