查看: 1401|回复: 8

包围球 回调函数

[复制链接]

该用户从未签到

发表于 2011-11-22 21:06:06 | 显示全部楼层 |阅读模式
计算一个模型的中心  但是可以不受包围球 或 包围盒的影响  
struct ComputeBoundingSphereCallback : public osg::Object
        {
            ComputeBoundingSphereCallback() {}

            ComputeBoundingSphereCallback(const ComputeBoundingSphereCallback&,const CopyOp&) {}

            META_Object(osg,ComputeBoundingSphereCallback);

           virtual BoundingSphere computeBound(const osg::Node&) const { return BoundingSphere(); }
        };

        /** Set the compute bound callback to override the default computeBound.*/
        void setComputeBoundingSphereCallback(ComputeBoundingSphereCallback* callback) { _computeBoundCallback = callback; }

        /** Get the compute bound callback.*/
        ComputeBoundingSphereCallback* getComputeBoundingSphereCallback() { return _computeBoundCallback.get(); }

        /** Get the const compute bound callback.*/
        const ComputeBoundingSphereCallback* getComputeBoundingSphereCallback() const { return _computeBoundCallback.get(); }
就是 这里的函数把  osg新人  希望前辈们 指教下  谢谢了

该用户从未签到

 楼主| 发表于 2011-11-22 23:15:39 | 显示全部楼层
那位 前辈帮忙看下啊  版主人呢

该用户从未签到

发表于 2011-11-23 09:04:51 | 显示全部楼层
计算模型中心,较好的办法就是计算出drawable空间内的包围盒中心,然后将其转换到你需要的坐标空间中去

该用户从未签到

 楼主| 发表于 2011-11-23 10:22:47 | 显示全部楼层
我的意思是这个    4.jpg 就是加上包围盒后 视点是到包围盒的中心 而不是选中模型的中心 怎么可以加上包围盒后  不计算包围盒的中心
3.jpg

该用户从未签到

 楼主| 发表于 2011-11-23 10:23:44 | 显示全部楼层
物体没动 加上边框后 就变小了

该用户从未签到

发表于 2011-11-23 14:08:18 | 显示全部楼层
TraclballManipulator中computeHomePosition会根据整个场景的包围体来计算最佳的观察位置,如果您希望自己的几何框不要加入计算,可以在这里处理。
用Callback把包围体设置为无效也是可以的,但是要注意这样可能会导致这个几何框被裁减掉,因为它很可能会因此被认为是在视锥体之外的

该用户从未签到

 楼主| 发表于 2011-11-23 16:15:58 | 显示全部楼层
老大 你终于回复了  我还想问下  Callback 是怎么设置无效的 我上面的那些函数是osg库的  能具体说下不 谢谢了  这个迷惑我好久了  

该用户从未签到

发表于 2011-11-25 09:08:55 | 显示全部楼层
Callback 是怎么设置无效的
返回一个空的BoundingSphere就足够了

该用户从未签到

 楼主| 发表于 2011-11-25 09:22:18 | 显示全部楼层
array 发表于 2011-11-25 09:08
返回一个空的BoundingSphere就足够了

谢谢啦 ……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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