IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> osgEarth2.10中用setNode替代setTetherNode设置视点跟踪 -> 正文阅读

[大数据]osgEarth2.10中用setNode替代setTetherNode设置视点跟踪

在以前的版本中,可以很简单的使用setTetherNode进行视点跟踪设置。
以前的方法:

	osg::ref_ptr<osg::Group> mRoot = new osg::Group();	//设置根节点
	osgViewer::Viewer * pViewer = new osgViewer::Viewer();
	osg::MatrixTransform* mtFly = new osg::MatrixTransform;//创建一个模型
	mRoot->addChild(mtFly);//将模型放进根节点
	//初始化一个操作器
	osg::ref_ptr<osgEarth::Util::EarthManipulator> em = new osgEarth::Util::EarthManipulator;
	pViewer->setCameraManipulator(em.get());
	pViewer->setSceneData(mRoot.get());//添加到场景
    pViewer->realize();
    //路径的生成这里不细说了,直接略过了
    mtFly->setUpdateCallback(new osg::AnimationPathCallback(apc,0.0,1.0));
    
	em->setTetherNode(mtFly);

现在的方法:

	osg::ref_ptr<osg::Group> mRoot = new osg::Group();	//设置根节点
	osgViewer::Viewer * pViewer = new osgViewer::Viewer();
	osg::MatrixTransform* mtFly = new osg::MatrixTransform;//创建一个模型
	mRoot->addChild(mtFly);//将模型放进根节点
	//初始化一个操作器
	osg::ref_ptr<osgEarth::Util::EarthManipulator> em = new osgEarth::Util::EarthManipulator;
	pViewer->setCameraManipulator(em.get());
	pViewer->setSceneData(mRoot.get());//添加到场景
    pViewer->realize();
    //路径的生成这里不细说了,直接略过了
    mtFly->setUpdateCallback(new osg::AnimationPathCallback(apc,0.0,1.0));
	
	//下面是区别
    //获取当前操作器的视点,将模型放进这个视角中,然后设置这个视角的一些参数,比如从哪个角度和距离观察模型。然后将这个视点设置为操作器的视点。
    osgEarth::Viewpoint vp = m_em->getViewpoint();
    vp.setNode(mtFly);
    vp.range()->set(250000.0, osgEarth::Units::METERS);//观察的距离
    vp.pitch()->set(-45.0, osgEarth::Units::DEGREES);//观察的角度
    em->setViewpoint(vp, 1.0);

另外,视点必须在viewer执行senScenceData之后才会有效。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:31:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:04:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码