Ogre-获取场景中的所有实体
2015-04-02 08:59
465 查看
Ogre中,有时候,可能需要对场景中的所有实体进行处理,我们可以通过以下的方式来获取场景中的所有实体。
采用递归函数,遍历根节点,获取所有子节点及其上所附加的实体。
<span style="font-family:Courier New;font-size:14px;">void getAllEntity(Ogre::SceneNode* rootNode, std::vector<Ogre::Entity*>& entityVec){if (!rootNode)return;else{unsigned short numChildren = rootNode->numChildren();for (unsigned short nodeIndex = 0; nodeIndex < numChildren; ++nodeIndex){Ogre::SceneNode* childNode = (Ogre::SceneNode*)rootNode->getChild(nodeIndex);unsigned short numEntity = childNode->numAttachedObjects();for (unsigned short entityIndex = 0; entityIndex < numEntity; ++entityIndex){Ogre::Entity* ent = (Ogre::Entity*)childNode->getAttachedObject(entityIndex);entityVec.push_back(ent);}getAllEntity(childNode, entityVec);}}}</span><span style="font-family: Calibri; font-size: 10.5pt;"></span>然后,我们在适当的地方调用这个方法,为其传递参数即可:<span style="font-family:Courier New;font-size:14px;">std::vector<Ogre::Entity*> entityVec;getAllEntity(mSceneMgr->getRootSceneNode(), entityVec);</span>entityVec即是场景中所有实体的集合。
相关文章推荐
- ogre 获取实体中的所有材质
- OgreOde——遍历场景中所有的实体(Entity)
- Ogre基础教程一----- 场景管理器,场景节点和实体
- Ogre笔记二:基础教程一—场景管理器、场景节点和实体
- objectARX 获取指定图层上所有实体ID
- # Java反射2——获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 转载:OGRE一起学(七)场景节点和实体
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java反射获取实体的所有可见属性值,返回Object数组
- Java反射获取实体的所有可见属性值,返回Object数组
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java中使用反射获取pojo(实体)类的所有字段值
- Ogre中设置.scene文件中所有实体、子实体以及各个LOD层级的材质
- (3) OGRE的基石:场景管理器、场景节点、实体
- java中使用反射获取pojo(实体)类的所有字段值
- ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态
- 利用反射获取实体所有属性和方法