osgViewer.Viewer
提供了用于渲染图形场景的框架,并提供了一个窗口化的用户界面。
Viewer()
: 创建一个空的Viewer。Viewer(const Viewer &viewer, const osg::CopyOp ©op = osg::CopyOp::SHALLOW_COPY)
: 调用这个构造函数将复制所有的Viewer状态,例如数据阵列,渲染信息,窗口信息和查看器状态。osg::Camera* getCamera() const
: 获取视口中的相机。void setSceneData(osg::Node *node)
: 设置要渲染的场景图。void addEventHandler(osgGA::GUIEventHandler *handler)
: 添加一个事件处理程序。void setThreadingModel(osgViewer::ViewerBase::ThreadingModel threadingModel)
: 设置线程化模型。void setCameraManipulator(osgGA::CameraManipulator *manipulator)
: 设置相机操纵器。void realize()
: 初始化OSG显示支持。void setLightingMode(osgViewer::ViewerBase::LightingMode mode)
: 设置光照模式。void setDisplaySettings(osg::DisplaySettings *settings)
: 设置显示设置。int run()
: 开始循环呈现,返回值表示退出运行循环的原因。#include <osgViewer/Viewer>
int main()
{
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
viewer.setSceneData(node.get());
return viewer.run();
}
以上代码将创建一个Viewer,并将场景图设置为"cow.osg",最后通过调用run()
函数启动主循环来开始渲染。