本文整理汇总了C++中osg::Group::removeChild方法的典型用法代码示例。如果您正苦于以下问题:C++ Group::removeChild方法的具体用法?C++ Group::removeChild怎么用?C++ Group::removeChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::Group
的用法示例。
在下文中一共展示了Group::removeChild方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
void
RemoveEmptyGroupsVisitor::apply( osg::Group& group )
{
bool removed = true;
while( removed )
{
removed = false;
for( unsigned i = 0; i < group.getNumChildren(); ++i )
{
osg::Group* child = group.getChild(i)->asGroup();
if ( child )
{
if (child->className() == std::string("Group") &&
child->getStateSet() == 0L &&
child->getCullCallback() == 0L &&
child->getUpdateCallback() == 0L &&
child->getUserData() == 0L &&
child->getName().empty() &&
child->getDescriptions().size() == 0 )
{
for( unsigned j = 0; j < child->getNumChildren(); ++j )
{
group.addChild( child->getChild( j ) );
}
group.removeChild( i-- );
removed = true;
}
}
}
}
traverse(group);
}
示例2: apply
virtual void apply(osg::Group &group ) {
for (unsigned int i = 0; i<group.getNumChildren(); ) {
if( dynamic_cast<osgAL::SoundRoot*>(group.getChild(i)) && _mode==SEARCH_AND_DESTROY ) {
group.removeChild(i);
} else {
if (dynamic_cast<osgAL::SoundRoot*>(group.getChild(i)) && _mode==SEARCH)
_found_count++;
group.getChild(i)->accept(*this);
i++;
}
}
}
示例3: apply
void
GeometryValidator::apply(osg::Group& group)
{
for(unsigned i=0; i<group.getNumChildren(); ++i)
{
osg::Geometry* geom = group.getChild(i)->asGeometry();
if ( geom )
{
apply( *geom );
if ( geom->getVertexArray() == 0L )
{
OE_NOTICE << "removing " << geom->getName() << " b/c of null vertex array\n";
group.removeChild(geom);
--i;
}
}
}
}