OSG中找到特定节点的方法是什么

OSG中找到特定节点的方法是什么

这篇文章主要介绍“OSG中找到特定节点的方法是什么”,在日常操作中,相信很多人在OSG中找到特定节点的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OSG中找到特定节点的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类

OSG中找到特定节点的方法是什么

[download id=“14”] 阐述了这个问题。下面是我写的一个类,找到指定名字、指定类型的节点:

classfindGeoNamedNode:publicosg::NodeVisitor{public:findGeoNamedNode();findGeoNamedNode(conststd::stringname):osg::NodeVisitor(TRAVERSE_ALL_CHILDREN)//Settraversemode{resultNode=NULL;this->name=name;}virtualvoidapply(osg::Node&searchNode){if(searchNode.getName()==name){osg::Geode*dynamicTry=dynamic_cast(&searchNode);if(dynamicTry){resultNode=dynamicTry;}}traverse(searchNode);}osg::Geode*getNode(){returnresultNode;}private:osg::Geode*resultNode;std::stringname;};

使用这个VISITOR类只需要调用以下的一些函数

osg::Node*testNode=NULL;testNode=dynamic_cast(osgDB::readNodeFile("d:\1.3ds"));findGeoNamedNode*visitor=newfindGeoNamedNode("Box01");testNode->accept(*visitor);

用起来很方便,得益于visitor模式的正确应用。

到此,关于“OSG中找到特定节点的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

发布于 2022-01-05 23:10:51
收藏
分享
海报
0 条评论
39
上一篇:现在养什么鱼最赚钱利润大(黑鱼养殖成本和利润) 下一篇:Unity中LineRenderer与TrailRenderer有什么用
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码