1、起初在想写一个点选功能,写了很多功能,纯osg都能跑通,测试没用问题,后来加入写好的小demo中就出问题了,但凡涉及到点击模型就会报这个异常,这种情况折磨了很长时间,然后去写其他功能了,点云---数据库,写的差不多了,又想解决这个问题,问了OSG大群里,也没个解决方法。

出现问题原因:加入模型的节点是Geode叶节点。
解决方法:模型放在Group节点里面。很简单,基础不牢地动山摇。
2、osg嵌入qt以后无法拖动,旋转,正常的情况getOsgViewer()->setCameraManipulator(new osgGA::TrackballManipulator);osg视图都要一个TrackballManipulator可以用于拖动旋转,但是突然写代码写着写着模型不能旋转了,只能滚轮缩放。????
出现问题原因:osgQopenglwidget中的鼠标移动事件。自己重写了。

解决方法:不要重写鼠标事件,自己只是声明定义,没写东西就会让那个TrackballManipulator失效。感谢师弟帮我测试,感谢杨老师。
文章讲述了在osg编程中遇到的两个问题及解决方法。一是添加模型到Geode叶节点导致点选功能出错,解决办法是将模型放在Group节点内。二是osg嵌入qt后模型无法拖动和旋转,原因是重写了鼠标移动事件,恢复默认设置后TrackballManipulator恢复正常。
1372





