查看: 2277|回复: 7

交运算的例子不明白

[复制链接]

该用户从未签到

发表于 2009-5-17 19:40:20 | 显示全部楼层 |阅读模式
int main(int argc, char **argv)
{
    // use an ArgumentParser object to manage the program arguments.
    osg::ArgumentParser arguments(&argc,argv);
   
    osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);
   
    if (!scene)
    {
        std::cout<<"No model loaded, please specify a valid model on the command line."<<std::endl;
        return 0;
    }
。。。。。
这个arguments 参数怎么确定加载模型,我如何specify a valid model on the command line?

该用户从未签到

发表于 2009-5-17 20:19:38 | 显示全部楼层
arguments是命令行参数,例如输入:
osgviewer cow.osg --e osg

这里的命令行参数有4个:
可执行程序名osgviewer,文件名cow.osg,指令字--e和指令值osg

OSG会自动负责解析它们,具体的实现您可以参看源代码
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-5-17 20:23:06 | 显示全部楼层
    ArgumentParser类的意思是解析命令行的输入参数,
    比如你输入osgviewer cow.osg,后面的cow.osg可通过此类来读取,类似解析命令行的工具,在OSG的众多例子中都有使用:

        osg::ArgumentParser arguments(&argc,argv);

        // read the scene from the list of file specified commandline args.
        osg::ref_ptr<osg::Node> scene = osgDB::readNodeFiles(arguments);

        if (!scene && arguments.read("--relative-camera-scene"))
    ...

    这里if判断的是如果通过输入的命令行读取模型成功,用户又输入了--relative-camera-scene条件成立
    示例如:
    osgexample glider.osg --relative-camera-scene这样osgexample程序就会走到这个分支
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-5-17 20:23:58 | 显示全部楼层
    哈哈,一楼面子不小啊

    该用户从未签到

     楼主| 发表于 2009-5-18 18:52:33 | 显示全部楼层
    真是太感谢你们了,心悦臣服啊。我也是没办法。。。麻烦两位了

    该用户从未签到

     楼主| 发表于 2009-5-21 16:04:31 | 显示全部楼层
    我很惭愧的再问一下,我还是不明白这个例子具体有什么作用,运行了一下,没跳出任何场景和模型,窗口直接就关闭了,这也很好理解因为agruments根本没指定模型,我想知道是不是要在程序里通过给agruments赋值才能在编译程序后让他读入模型,还是通过其他方式呢

    该用户从未签到

    发表于 2009-5-21 17:18:52 | 显示全部楼层
    这只是通过命令行来读取参数的方式而已。当然您也可以自己指定参数,或者像那些Windows程序一样,用一个对话框获取文件名并打开。readNodeFile函数有很多种形式,仔细看一下API文档就会明白

    该用户从未签到

     楼主| 发表于 2009-5-21 19:02:31 | 显示全部楼层
    谢谢array,其实我想通过这个例子了解碰撞检测的,不知道地形与小车的检测具体怎么实现,也知道射线法,但是地形模型的平面,怎么去获取呢? 还有模型中具体的部件的坐标怎么去获得?一般式flt文件,比如坦克,我想获取炮口的世界坐标,而且是实时的,不知道怎么办了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表