|
楼主 |
发表于 2009-6-10 09:54:11
|
显示全部楼层
谢谢您的回复。我是在OSGMFC的框架下写的代码。- void cOSG::InitOSG(std::string modelname)
- {
- // Store the name of the model to load
- m_ModelName = modelname;
- // Init different parts of OSG
- InitManipulators();
- InitSceneGraph();
- InitCameraConfig();
- }
复制代码 然后自己写一个PH类继承自GUIEventHandler,- bool CPH::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa)
- {
- switch(ea.getEventType())
- {
- case(osgGA::GUIEventAdapter::FRAME):
- {
- osgViewer::Viewer* viewer = dynamic_cast<osgViewer::Viewer*>(&aa);
- viewer ->getCamera() ->getViewMatrixAsLookAt(position, center, up) ;
- }
- default:
- return false;
- }
- }
复制代码 并在InitCameraConfig()中,添加代码:mViewer ->addEventHandler(ph);
而且如果我把数据换成是平面的数据,得到的position的值是没有错的。
[ 本帖最后由 vincent 于 2009-6-10 10:13 编辑 ] |
|