位置变换节点,继承osg::transform主要作用是提供模型的位置变换(setPosition),大小缩放(setScale),原点位置(setPivotPoint),坐标系的变换,设置姿态(setAttitude)等
示例
//创建viewer对象,场景游览器
osg::ref_ptr<osgViewer::Viewer> _mViewer = new osgViewer::Viewer;
//创建场景组节点
osg::ref_ptr<osg::Group> root = new osg::Group();
//创建一个节点用于读取osg模型
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
osg::ref_ptr<osg::PositionAttitudeTransform> pat1 = new osg::PositionAttitudeTransform();
pat1->setPosition(osg::Vec3(-10.0f,0.0f,0.f));
pat1->setScale(osg::Vec3(0.5f,0.5f,0.5f));
pat1->addChild(node.get());
osg::ref_ptr<osg::PositionAttitudeTransform> pat2 = new osg::PositionAttitudeTransform();
pat2->setPosition(osg::Vec3(10.0f, 0.0f, 0.f));
pat2->addChild(node.get());
//添加到场景
root->addChild(pat1.get());
root->addChild(pat2.get());
//优化场景
_mViewer->setSceneData(root.get());
_mViewer->realize();
//设置屏幕,大小参数
osgViewer::GraphicsWindow *pWnd = dynamic_cast<osgViewer::GraphicsWindow*>(_mViewer->getCamera()->getGraphicsContext());
pWnd->setWindowRectangle(960, 540, 1920, 1080); // 定义程序窗口坐标,窗口大小
pWnd->setWindowDecoration(true);
//开始渲染
_mViewer->run();
本文使用osg文件下载
链接:https://pan.baidu.com/s/1_bMlnAdQaIx1ISJtQtzZqA
提取码:1234