查看: 1494|回复: 3

OSG 源码编译问题

[复制链接]

该用户从未签到

发表于 2010-12-27 08:40:28 | 显示全部楼层 |阅读模式
在《OpenSceneGraph三维渲染引擎设计与实践》第九章源代码Keyframe中,编译出现  osgAnimation::Target* target = (*itr)->getTarget();
                target->normalize();

出现错误'normalize' : is not a member of 'osgAnimation。 使用的OSG版本是2.8.3。这个是OSG版本问题造成的吗?在2.8.3中没有<osgAnimation/UpdateCallback>这个头文件,只有<osgAnimation/AnimationUpdateCallback>。


在osg::ref_ptr<osgAnimation::UpdateTransform> callback =
        new osgAnimation::UpdateTransform( "PathCallback" );

中报错'UpdateTransform' : is not a member of 'osgAnimation'。
从OSG官方的2.8.0版本的继承树上看,上述代码是没有问题的,但在2.8.3中就编译不过。。
  求解答,谢谢!

该用户从未签到

 楼主| 发表于 2010-12-27 08:52:41 | 显示全部楼层
下面是2.8.3版本下的Target文件,好像的确没有normalize函数
class OSGANIMATION_EXPORT Target : public osg::Referenced
    {
    public:
            
        Target();
        virtual ~Target() {}
        void reset() { _weight = 0; _priorityWeight = 0; }
        int getCount() const { return referenceCount(); }
        float getWeight() const { return _weight; }
    protected:
        float _weight;
        float _priorityWeight;
        int _lastPriority;
    };
,但是在  http://www.openscenegraph.org/do ... nceDocs/a00827.html就有virtual void         normalize ()=0

该用户从未签到

发表于 2010-12-27 09:01:58 | 显示全部楼层
每本书源码都有自己的编译版本,OSG版本不断更新,存在编译问题很正常~~您参考类的实现稍作修改即可~~~

该用户从未签到

 楼主| 发表于 2010-12-27 09:08:46 | 显示全部楼层
3# FlySky
恩,的确是。。不过这个对于我这种初学者,难度有点大。。总之还是一点一点来吧。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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