Hi,

The trackball manipulator is almost what I need for my application. I would 
like to handle some keyboard inputs to move the camera. 

I am trying to derive TrackballManipulator and override the handle() method. 
Looking at the structure of 'camera manipulators', it seems to me that this is 
the right way to just handle keyboard inputs.

But somehow the handle method of my manipulator is not being called. just 
never. 

Am I in the right direction?


Code:

class CityManipulator : public osgGA::TrackballManipulator
{

public:
    CityManipulator(int flags = DEFAULT_SETTINGS)
        :osgGA::TrackballManipulator(){}
    CityManipulator( const CityManipulator& tm,
                     const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY )
        :osgGA::TrackballManipulator( tm, copyOp ){}

    META_Object( osgGA, CityManipulator )

protected:
    bool handle( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us)
    {
        std::cout << "handling" << std::endl;

        bool handled(false);

        switch(ea.getEventType())
        {
        case(osgGA::GUIEventAdapter::KEYDOWN):
           {
              switch(ea.getKey())
              {
              case 'w':
                 std::cout << "pressing w"  << std::endl;
                 return false;
                 break;
              default:
                 return false;
              }
           }
        default:
           return false;
        }

        return TrackballManipulator::handle(ea, us);
    }
};

//////

CityManipulator * tm = new CityManipulator();

tm->setNode(m_rootNode);

tm_viewer->setCameraManipulator(tm);






... 

Thank you!

Cheers,
Vinicius
Code:




------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=75032#75032





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to