Hi Nelson, You event handler should be getting events, but perhaps you're discarding the events that have already been handled - just remove this code.
Robert. On 8/13/07, Cysneros, Nelson SPAWAR <[EMAIL PROTECTED]> wrote: > Thank you very much. The keyswitchManipulator does exactly what I had > in mind. > My only problem now is that before I added the > KeySwitchMatrixManipulator to the view, I created a custom > KeyBoardMouseEventHandler that worked with the viewer. Now that I added > the KeySwitchMatrixManipulator, I can't get my KeyBoardMouseEventHandler > to control my scene. > > I'm sure I just have to add a addEventHandler to the right place but I > can't seem to get it to work. > > > > Code snippet: > ------------------------------------------------------------------------ > --------------------------------- > //Add Camera Manipulator > keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator; > viewer_->setCameraManipulator( keyswitchManipulator.get() ); > > osgGA::NodeTrackerManipulator::TrackerMode trackerMode = > osgGA::NodeTrackerManipulator::NODE_CENTER_AND_ROTATION; > osgGA::NodeTrackerManipulator::RotationMode rotationMode = > osgGA::NodeTrackerManipulator::TRACKBALL; > > > //Add Earth as the default camera focus > FindNamedNodeVisitor fnnv("Earth"); > root_->accept(fnnv); > > if (!fnnv._foundNodes.empty()) > { > // set up the node tracker. > osgGA::NodeTrackerManipulator* tm = new > osgGA::NodeTrackerManipulator; > tm->setTrackerMode( trackerMode ); > tm->setRotationMode( rotationMode ); > tm->setTrackNode( fnnv._foundNodes.front().get() ); > > unsigned int num = > keyswitchManipulator->getNumMatrixManipulators(); > keyswitchManipulator->addMatrixManipulator( 'e', "earth", tm); > keyswitchManipulator->selectMatrixManipulator( num ); > } > > /////////////////////////////////////////// > //New Keyboard/Mouse Event Handler code > ////////////////////////////////////////// > > osg::ref_ptr<osgGA::StateSetManipulator> statesetManipulator = new > osgGA::StateSetManipulator(viewer_->getCamera()->getStateSet()); > viewer_->addEventHandler(statesetManipulator.get()); > > // add the KeyBoardMouseEventHandler > kbmeh = new KeyBoardMouseEventHandler(); > > //Add Event Handler for Mouse and KeyBoard > viewer_->addEventHandler(kbmeh.get()); > > viewer_->setSceneData(root_); > ------------------------------------------------------------------------ > ----------------------------------- > > > > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Robert > Osfield > Sent: Saturday, August 11, 2007 1:09 AM > To: osg-users@lists.openscenegraph.org > Subject: Re: [osg-users] osgplanets modification Question > > > Hi Nelson, > > The osgplanet example already does what you are after... it attaches > multiple NodeTrackerManipulators, one for each planet of interest, then > a KeySwitchMatrixManipulator is used at the top to select which planet > to view. Please have a look at the code. > > Robert. > > On 8/11/07, Cysneros, Nelson SPAWAR <[EMAIL PROTECTED]> wrote: > > > > > > On the osgplanet example, if I wanted to view any selected planet and > > have it be my center of focus, while still being part of the overall > > simulation, what would be the best way to do this? > > > > > > 1. Attach a camera to every planet, and when selected pass the camera > > > to the main view. > > > > osgViewer::Viewer viewer; > > viewer->setSceneData(root); > > > > //after selecting planet > > viewer->setCamera(newPlanetCamera); > > > > > > 2. Point the default camera to the selected Planets > > > > osg::Vec3 eye( viewPoint->getX(), viewPoint->getY(), > > viewPoint->getZ()); > > osg::Vec3 center(0,0,0); > > osg::Vec3 up(0,0,5000000); > > > > viewer->getCamera()->setViewMatrixAsLookAt(eye,center,up); > > > > > > 3. Is their a better way to do this? Any examples? > > > > > > > > Thank you > > > > _______________________________________________ > > osg-users mailing list > > osg-users@lists.openscenegraph.org > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph. > > org > > > > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or > g > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org