osg::Vec3d TrackballRotate::screen2World(osg::Vec3 screenPoint)//将屏幕坐标转换到世界坐标
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertVPW;
invertVPW.invert(mVPW);
vec3 = screenPoint * invertVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Screen(osg::Vec3 worldPoint)//世界到屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = worldPoint * mVPW;
return vec3;
}
osg::Vec3d Tr
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
//osg::Vec3d vScreen(x,y, 0);
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
osg::Matrix invertVPW;
invertVPW.invert(mVPW);
vec3 = screenPoint * invertVPW;
return vec3;
}
osg::Vec3d TrackballRotate::world2Screen(osg::Vec3 worldPoint)//世界到屏幕
{
osg::Vec3d vec3;
osg::ref_ptr<osg::Camera> camera = viewer->getCamera();
osg::Matrix mVPW = camera->getViewMatrix() * camera->getProjectionMatrix() * camera->getViewport()->computeWindowMatrix();
vec3 = worldPoint * mVPW;
return vec3;
}
osg::Vec3d Tr