查看: 973|回复: 0

如何让屏幕重绘

[复制链接]

该用户从未签到

发表于 2011-1-13 08:38:39 | 显示全部楼层 |阅读模式
我写了个代码,打开文件对话框,选择多个osg文件,然后想获取这些三维模型的图片,我现在获取到了多个osg文件的路径名,然后想依次载入单个模型,并进行截图,我在外部利用RemoveChild与AddChild分别来删除当前节点以及添加新的节点以实现模型循环加载,但在加载完模型后如何使osg自动重绘,请高手指教!谢谢

代码:
        CString strFilePath;
        std::vector<std::string> strPathVec;
        strPathVec.clear();
        if(Filedlg.DoModal()   ==   IDOK)   
        {   
                POSITION   pos   =   Filedlg.GetStartPosition();   
                while(pos   !=   NULL)   
                {   
m_pOSG->ClearSceneGraph();

strFilePath=Filedlg.GetNextPathName(pos);   

strPathVec.push_back(strFilePath.GetString());

m_pOSG->AddModel(strFilePath.GetString());


//此处如何让osg viewer重绘???

                }   

        }


void COSG::ClearSceneGraph(void)
{
        m_spRoot->removeChild(0, m_spRoot->getNumChildren());
}


void COSG::AddModel(std::string strPath)
{
        osg::ref_ptr<osg::Node> spNode  = osgDB::readNodeFile(strPath);
        m_spRoot->addChild(spNode);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表