查看: 1768|回复: 5

求助,OE开发浏览器AcitveX,无法显示IVE模型,而在AcitveX容器中却能显示。

[复制链接]

该用户从未签到

发表于 2014-4-7 12:59:50 | 显示全部楼层 |阅读模式
osg::ref_ptr<osg::Node> node1 = new osg::Node();
        std::string strPath = "http://osgservice.yutuxinxi.com/Mod/kazhumi.IVE";
       
        osgDB::ReaderWriter::ReadResult rr = osgDB::Registry::instance()->readNode(strPath,osgDB::Registry::instance()->getOptions() );
        if ( rr.validNode() )
                node1 = rr.takeNode();
        if (!node1 )
        {
                m_GetTileObj->m_SystempObj->_Msg("读取模型失败!");
                return 0;

        }
        else
        {
                node1->setName("我的模型");
        }
       
        /de1->setDataVariance( osg::Object:YNAMIC );
        //int CastsShadowTraversalMask=0x2;
        /de1->setNodeMask(CastsShadowTraversalMask);
        ////控制建筑物的位置 比例高度
        osg::ref_ptr<osg::MatrixTransform> mthouseSelf;
        osg::ref_ptr<osg::MatrixTransform> mthouse;
        mthouseSelf = new osg::MatrixTransform;
        mthouseSelf->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON);
        bool yes=mthouseSelf->addChild(node1);
        if (!yes)
        {
                m_GetTileObj->m_SystempObj->_Msg("mthouseSelf添加失败了!");
                return 0;
        }
        mthouse = new osg::MatrixTransform;
        yes=mthouse->addChild(mthouseSelf);
        if (!yes)
        {
                m_GetTileObj->m_SystempObj->_Msg("mthouse添加失败了!");
                return 0;
        }
        osg::Matrixd mtTemp;
        osg::ref_ptr<osg::CoordinateSystemNode> csn = new osg::CoordinateSystemNode;
        csn->setEllipsoidModel(new osg::EllipsoidModel());
        csn->getEllipsoidModel()->computeLocalToWorldTransformFromLatLongHeight(osg::DegreesToRadians(34.74769),osg::DegreesToRadians(113.61961),0.0, mtTemp);
        mthouse->setMatrix(mtTemp);       

        osg::Vec3d center;                               
        mapNode->getMapSRS()->transformToWorld(osg::Vec3(113.61961,34.74769,0), center);
       
        //////读取center和dist
        osg::ref_ptr<osg:agedLOD> plod = new osg::PagedLOD;
        float m_minRange=0,m_MaxRange=0;
        plod->setCenter(center);
        //plod->setRange(0, 0,500000.0);
        plod->setCenterMode(osg:OD::USER_DEFINED_CENTER);
        yes=plod->addChild(mthouse);
        if (!yes)
        {
                m_GetTileObj->m_SystempObj->_Msg("plod添加失败了!");
                return 0;
        }

        yes=earthPageIveLod->addChild(plod);

        if (!yes)
        {
                m_GetTileObj->m_SystempObj->_Msg("earthPageIveLod添加失败了!");
                return 0;
        }

该用户从未签到

 楼主| 发表于 2014-4-7 13:05:48 | 显示全部楼层
本帖最后由 huangzhenyong 于 2014-4-7 13:07 编辑

在AcitveX容器中可以显示模型

在AcitveX容器中可以显示模型

在浏览器里面就不显示了,请求帮忙!

该用户从未签到

 楼主| 发表于 2014-4-7 13:18:58 | 显示全部楼层

在浏览器中无法显示模型,奇怪了。

在浏览器中无法显示模型,奇怪了。

该用户从未签到

 楼主| 发表于 2014-4-7 13:19:24 | 显示全部楼层
谁能帮我想想办法。

该用户从未签到

 楼主| 发表于 2014-4-7 13:41:02 | 显示全部楼层
我已经搞定啦,浏览器跟C/S不一样,呵呵。

该用户从未签到

发表于 2014-4-12 17:57:42 | 显示全部楼层
huangzhenyong 发表于 2014-4-7 13:41
我已经搞定啦,浏览器跟C/S不一样,呵呵。

我也遇到这种问题了,请问楼主你是如何解决的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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