查看: 934|回复: 5

osg智能指针只能osg类使用????

[复制链接]

该用户从未签到

发表于 2014-5-8 13:47:00 | 显示全部楼层 |阅读模式
本帖最后由 oirrm 于 2014-5-14 13:31 编辑

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

该用户从未签到

 楼主| 发表于 2014-5-14 13:32:08 | 显示全部楼层
osg::ref_ptr<CPolygonOp> m_PolygonGroup2;//自定义个类报错呢。。。
错误        1        error C2039: “unref”: 不是“CPolygonOp”的成员        d:\osg_2.8.2\include\osg\ref_ptr        33

该用户从未签到

发表于 2014-5-14 13:40:00 | 显示全部楼层
osg::Referenced的子类都可以用智能指针
自定义类继承osg::Referenced就可以了

该用户从未签到

 楼主| 发表于 2014-5-14 14:05:42 | 显示全部楼层
cenfer 发表于 2014-5-14 13:40
osg::Referenced的子类都可以用智能指针
自定义类继承osg::Referenced就可以了


#include <osg/Geometry>
#include <osg/MatrixTransform>
#include <iostream>

#pragma comment( lib, "osgd.lib")   
#pragma comment( lib, "osgViewerd.lib")   
#pragma comment( lib, "osgDBd.lib")   
#pragma comment( lib, "OpenThreadsd.lib")   
#pragma comment( lib, "osgUtild.lib")  
#pragma comment( lib, "osgGAd.lib")
#pragma comment( lib, "osgTextd.lib")
#pragma comment( lib, "osgSimd.lib")


osg::Vec3d postMultloca(double _mat[][4],osg::Vec3d v )
{
        osg::Vec3d::value_type d = 1.0f/(_mat[3][0]*v.x()+_mat[3][1]*v.y()+_mat[3][2]*v.z()+_mat[3][3]);
        return osg::Vec3d((_mat[0][0]*v.x() + _mat[0][1]*v.y() + _mat[0][2]*v.z() + _mat[0][3])*d,
                (_mat[1][0]*v.x() + _mat[1][1]*v.y() + _mat[1][2]*v.z() + _mat[1][3])*d,
                (_mat[2][0]*v.x() + _mat[2][1]*v.y() + _mat[2][2]*v.z() + _mat[2][3])*d);
}

int _tmain(int argc, _TCHAR* argv[])
{
        /*osg::Matrixd a;
        a.setTrans(4,0,1);*/
        osg::Vec3 b;
        b.set(1,2,3);
        double _mat[4][4] = {
                1,0,0,0,
                0,1,0,0,
                0,0,1,0,
                4,0,1,1
        };
        osg::Vec3 f = postMultloca(_mat,b);//f=0.125,0.25,0.375  矩阵与点相乘这个值代表啥意思???
        getchar();
        return 0;
}

该用户从未签到

发表于 2014-5-14 15:32:10 | 显示全部楼层
oirrm 发表于 2014-5-14 14:05
#include
#include
#include

其他帖子已回复

该用户从未签到

发表于 2014-5-17 11:01:53 | 显示全部楼层
从osg::Referenced继承的子类都可以用智能指针
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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