|
用doc命令行参数启动程序,原来源代码这么写的:- osg::ref_ptr<osg::Node> rootnode=osgDB::readNodeFiles(arguments);
- viewer.setScentDate(rootnode.get());
复制代码 doc参数输入***.exe -m cow.osg lz.osg
可以运行。但是cow.osg和lz.osg是平行的。我想单独让cow运动,lz不动,改动源代码如下:- osg::ref_ptr<osg::Group> root = new osg::Group;
- osg::ref_ptr<osg::Node> lz=new osg::Node;
- osg::ref_ptr<osg::Node> cow=NULL;
- cow=osgDB::readNodeFiles(arguments);
- while(arguments.read("-cow"),cow);
- osg::ref_ptr<osg::MatrixTransform> trans=new osg::MatrixTransform;
- osg::ref_ptr<osg::PositionAttitudeTransform> followerPat=new osg::PositionAttitudeTransform;//视点位置姿态,可调整
- followerPat->setPosition(osg::Vec3(0.0,0.0,0.0));
- followerPat->setAttitude(osg::Quat(osg::DegreesToRadians(10.0),osg::Vec3(1.0,0.0,0.0)));
- trans->addChild(cow.get());//场景组织一下
- trans->addChild(followerPat.get());
- root->addChild(lz.get());
- root->addChild(trans.get());
复制代码
命令行参数:***.exe -m lz.osg -cow cow就显示不出来了。看进程,***.exe已经执行,就是不显示。请问这个场景应该如何组织?源代码那么写有问题吗? |
|