查看: 710|回复: 0

osgRecipes中osgdb_otl读取问题

[复制链接]

该用户从未签到

发表于 2015-3-26 12:14:31 | 显示全部楼层 |阅读模式
本帖最后由 anlingbin 于 2015-3-26 12:35 编辑

最近用osgRecipes中的osgdb_otl保存并读取模型,发现模型成功保存到了数据库(SQLite3),但是读取的时候一直不成功(卡在那里),调试了一下发现是在
ReaderWriterOTL.cpp中readImplementation的ReadResult rr = op.read( rw, in, realOptions )行卡住,然后std::stringstream in中好像读取的数据并不全,没有全部获取到,请问这种情况是什么原因?是否是转义字符的原因,还是其它?本人对数据库不是很熟悉,希望哪位帮忙解释一下,谢谢!
以下是代码:
int _tmain(int argc, char* argv[])
{
        std::string file = "E:/alb/model/RevitExport/356x368x129UC_123069.osg";
        osg::ref_ptr<osg::Node> node = osgDB::readNodeFile(file);

        if (!node.valid())
                return 0;

        osg::ref_ptr<osgDB::Options> options = new osgDB::Options;
        options->setOptionString("newtable ");

        osgDB::writeNodeFile(*node, "usr/pwd@SQLite3ALB:mytable:cvx.osg.otl", options.get());
        node = osgDB::readNodeFile("usr/pwd@SQLite3ALB:mytable:cvx.osg.otl", osgDB::Registry::instance()->getOptions());
        if (!node.valid())
        {
                std::cout << "read_node null" <<std::endl;
                return 0;
        }

        osg:ightModel* lightModel = new osg::LightModel;
        lightModel->setTwoSided(true);//双面灯光
        node->getOrCreateStateSet()->setAttribute(lightModel);

        osgViewer::Viewer viewer;
        viewer.setSceneData(node.get());
        viewer.setUpViewInWindow(100, 100, 800, 600);
        return viewer.run();
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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