osg节点统计方法(点数 面数) 【转】

void statusNode(osg::ref_ptr<osg::Node> node,int& verNum,int& faceNum)
{
 osg::ref_ptr<osgUtil::StatsVisitor> sv=new osgUtil::StatsVisitor();
 sv->apply(*node);
 sv->totalUpStats();

 unsigned int unique_primitives = 0;
 osgUtil::Statistics::PrimitiveCountMap::iterator pcmitr;
 for(pcmitr =sv->_uniqueStats.GetPrimitivesBegin();
  pcmitr !=sv-> _uniqueStats.GetPrimitivesEnd();
  ++pcmitr)
 {
  unique_primitives += pcmitr->second;
 }

 verNum=sv->_uniqueStats._vertexCount;
 faceNum=unique_primitives;
}

posted on 2016-09-29 11:08  3D入魔  阅读(828)  评论(0编辑  收藏  举报