pickhandle.cpp:44:34: error: no member named 'setAllowThrow' in 'osgGA::CameraManipulator'
时间: 2023-07-29 16:12:42 浏览: 100
这个错误提示是因为在 `osgGA::CameraManipulator` 类中没有 `setAllowThrow` 函数成员。你可以检查一下你的代码是否正确地引入了 `osgGA` 头文件,并且是否正确地定义了 `osgGA::CameraManipulator` 对象。如果你确定没有问题,那么这个函数可能是在其他版本的 OpenSceneGraph 中引入的,你可以尝试升级你的 OpenSceneGraph 版本来解决这个问题。
相关问题
osgengine.cpp:277:14: error: no member named 'setEventQueueMode' in 'osgViewer::Viewer'
这个错误是因为`setEventQueueMode`函数是在OSG 3.6.5版本中引入的,如果您使用的是较旧的版本,该函数可能不可用。您可以尝试使用以下代码来替代`setEventQueueMode`函数:
```cpp
osg::ref_ptr<osgViewer::GraphicsWindow> gw =
dynamic_cast<osgViewer::GraphicsWindow*>(viewer->getCamera()->getGraphicsContext());
if (gw.valid())
{
gw->getEventQueue()->getCurrentEventState()->setWindowRectangle(0, 0, width, height);
gw->getEventQueue()->getCurrentEventState()->setMouseYOrientation(osgGA::GUIEventAdapter::Y_INCREASING_DOWNWARDS);
}
```
这段代码将获取当前的事件队列,并设置窗口矩形和鼠标方向。请注意,这段代码需要您的`viewer`对象已经创建了一个合适的图形窗口。如果您的程序中没有创建图形窗口,您需要先创建一个图形窗口,并将其设置为`viewer`对象的场景数据。
osgengine.cpp:275:46: error: no type named 'TrackballManipulator' in namespace 'osgGA'
这个错误可能是由于您没有正确包含所需的头文件或者使用了错误的命名空间。请确保您的代码中包含了以下头文件:
```cpp
#include <osgGA/TrackballManipulator>
```
并且在代码中使用的命名空间是`osgGA`,而不是其他的命名空间。如果您的代码中已经正确包含了这个头文件,并且使用了正确的命名空间,但是仍然出现了这个错误,请检查您的编译环境是否正确配置,并且可以正确链接OpenSceneGraph库。
阅读全文