本文整理汇总了C++中osg::NodePtr::getNChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ NodePtr::getNChildren方法的具体用法?C++ NodePtr::getNChildren怎么用?C++ NodePtr::getNChildren使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::NodePtr
的用法示例。
在下文中一共展示了NodePtr::getNChildren方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkForRedundancy
void InventorLoader::checkForRedundancy( osg::NodePtr OSGGroup )
{
return;
// TODO: Check the type of the node and return, if it's not a node
// that should be discarded (discardable: group, not discardable: geometry)
// If the group node has no children, then let's kick it !
if( OSGGroup->getNChildren() == 0 )
{
if(OSGGroup->getParent() != NullFC)
{
OSGGroup->getParent()->subChild(OSGGroup);
}
else
{
subRefCP(OSGGroup);
}
}
// If there's only one child, then add it to the parent of the group,
// copy the name and remove the group
else if ( OSGGroup->getNChildren() == 1 )
{
// Get parent and child
osg::NodePtr _Child = OSGGroup->getChild(0);
osg::NodePtr _Parent = OSGGroup->getParent();
// Copy the name
const char* _Name = getName(OSGGroup);
if( _Name )
setName( _Child, _Name );
// Add the child to the parent
_Parent->addChild( _Child );
// Remove the group node
_Parent->subChild( OSGGroup );
}
}
示例2: next
NodeBase NodeIterator::next(void)
{
while(!_stack.empty())
{
OSG::NodePtr act = _stack.back();
_stack.pop_back();
for(OSG::UInt32 i = 0; i < act->getNChildren(); ++i)
_stack.push_back(act->getChild(i));
if(act->getCore()->getType().isDerivedFrom(*_type))
{
return NodeBase(act);
}
}
PyErr_SetString(PyExc_StopIteration, "Out of Nodes");
boost::python::throw_error_already_set();
}
示例3: main
//.........这里部分代码省略.........
file << patt_trans[0][0] << " " << patt_trans[0][1] << " " << patt_trans[0][2] << " " << patt_trans[0][3] << " "<<endl;
file << patt_trans[1][0] << " " << patt_trans[1][1] << " " << patt_trans[1][2] << " " << patt_trans[1][3] << " "<<endl;
file << patt_trans[2][0] << " " << patt_trans[2][1] << " " << patt_trans[2][2] << " " << patt_trans[2][3] << " "<<endl;
//file << patt_center[0] << " " << patt_center[1] <<endl;
//cout << "patt width: " << patt_width <<endl;
file << marker_info[k].pos[0] << " " << marker_info[k].pos[1] <<endl;
cout << "p1: " << marker_info[k].vertex[0][0] << " " << marker_info[k].vertex[0][1]<< endl;
cout << "p2: " << marker_info[k].vertex[1][0] << " " << marker_info[k].vertex[1][1]<< endl;
cout << "p3: " << marker_info[k].vertex[2][0] << " " << marker_info[k].vertex[2][1]<< endl;
cout << "p4: " << marker_info[k].vertex[3][0] << " " << marker_info[k].vertex[3][1]<< endl;
cv::line(newAR,cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),CV_RGB(255,0,0));
cv::line(newAR,cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),CV_RGB(255,0,0));
cv::line(newAR,cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),CV_RGB(255,0,0));
cv::line(newAR,cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),CV_RGB(255,0,0));
cv::line(newAR,cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),CV_RGB(255,0,0));
cv::line(newAR,cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[0][0],marker_info[k].vertex[0][1]),cv::Point(marker_info[k].vertex[2][0],marker_info[k].vertex[2][1]),CV_RGB(255,0,0));
cv::line(RGB,cv::Point(marker_info[k].vertex[1][0],marker_info[k].vertex[1][1]),cv::Point(marker_info[k].vertex[3][0],marker_info[k].vertex[3][1]),CV_RGB(255,0,0));
cv::waitKey(1);
}
stringstream stream2;
stream2 << "pics/new/";
stream2 << u;
stream2 << ".bmp";
//cv::imwrite(stream2.str().c_str(),RGB);
file<< "##"<<endl;
cv::imshow("looky looky",RGB);
cv::waitKey(1);
}
file.close();
*/
// AR _ENDE_ !!
//}
// QCoreApplication a(argc, argv);
OSG::osgInit(argc,argv);
cout << "argc " << argc <<endl;
for(int ar(0);ar<argc;++ar)
cout << argv[ar] << " ";
cout << endl;
int winid = setupGLUT(&argc,argv);
//GLUTWindowPtr gwin = GLUTWindow::create();
//gwin->setGlutId(winid);
//gwin->init();
OSG::NodePtr scene = SceneFileHandler::the().read("data/test__1.obj");
//OSG::NodePtr scene = SceneFileHandler::the().read("data/test3_4.obj");
//GroupPtr scene = GroupPtr::dcast(scene);
cout << "type: " << scene.getCore()->getTypeName()<< endl;
cout << "children in scene: " << scene->getNChildren()<<endl;
GeometryPtr geo = GeometryPtr::dcast(scene->getCore());
GeoPTypesPtr type = GeoPTypesUI8::create();
type->addValue(GL_LINE);
LineIterator lit;
int lines(0);
TEST = geo;
for(lit = geo->beginLines();lit != geo->endLines();++lit){
lines++;
}
cout << "lines: " << lines <<endl;
SimpleMaterialPtr mat = SimpleMaterial::create();
geo->setMaterial(mat);
// Create and setup our little friend - the SSM
mgr = new SimpleSceneManager;
//mgr->setWindow(gwin);
//mgr->setRoot(scene);
//mgr->showAll();
//glutCreateWindow("test");
glutMainLoop();
return 0;
}