Openscenegraph 拾取对象时获取索引节点或名称节点
我在Android上使用OSG 我在主目录中初始化了indexNode=0Openscenegraph 拾取对象时获取索引节点或名称节点,openscenegraph,Openscenegraph,我在Android上使用OSG 我在主目录中初始化了indexNode=0 int main(int, char **) { osg::ref_ptr<osg::Node> model1 = osgDB::readNodeFile( "cessna.osg"); osg::ref_ptr<osg::Node> model2 = osgDB::readNodeFile( "cow.osg" ); unsigned int indexNode= 0
int main(int, char **)
{
osg::ref_ptr<osg::Node> model1 = osgDB::readNodeFile( "cessna.osg");
osg::ref_ptr<osg::Node> model2 = osgDB::readNodeFile( "cow.osg" );
unsigned int indexNode= 0;
osg::ref_ptr<osg::Group> root = new osg::Group;
root->addChild( model1.get() );
root->addChild( model2.get() );
osg::ref_ptr<PickHandler> picker = new PickHandler;
root->addChild( picker->getOrCreateSelectionBox() );
osgViewer::Viewer viewer;
viewer.setSceneData( root.get() );
viewer.addEventHandler( picker.get() );
return viewer.run();
}
我想在拾取任何节点(cow或plane)时获取节点名称或索引节点,
我需要归还任何东西来帮助我知道我选了什么东西
我不知道我所做的是否正确,但当我点击任何对象时,它是给我3号,一眼就看不清它在哪里“给”你3号。我没有看到任何打印的内容,也没有看到任何可能包含3的int。我看到很多边界和矩阵
您需要更好地解释这种情况,也许可以使用更简单的演示代码。这就是添加节点名称和标识符的方法:
int main()
{
....
osg::ref_ptr<osg::Group> root = new osg::Group;
root->setName("Node Name");
root->setUserValue("id", idNumber);
...
}
osg::Node *node;
node->getUserValue("id", returnedString);
std::string name = node->getName();
希望这能消除你的疑虑
int main()
{
....
osg::ref_ptr<osg::Group> root = new osg::Group;
root->setName("Node Name");
root->setUserValue("id", idNumber);
...
}
osg::Node *node;
node->getUserValue("id", returnedString);
std::string name = node->getName();