OSG教程:场景保存类Viewer

2024-04-10 03:32
文章标签 保存 教程 场景 osg viewer

本文主要是介绍OSG教程:场景保存类Viewer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源: 第三维度
    作者:FreeSouth[杨石兴]编著

    选自《OSG程序设计教程》第二章第四节

    osgViewer::Viewer

    类描述: 为一个单独的场景[scene]保存一个单独的view.

    类中方法:

    1:Viewer()
    2:Viewer (osg::ArgumentParser &arguments)
    3:Viewer (const osgViewer::Viewer &viewer, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)

    说明:是Viewer的构造函数。其中第一个为常见的构造函数。第二个构造函数为从类osg::ArgumentParser中传递参数入Viewer,类ArgumentParser可以获取main入口参数以及程序的其它信息,也可以判断传参是否有误。第三个重载的构造函数为从另一个Viewer创建新Viewer,里面的第一个参数表示源Viewer,而第二个参数表示使用的拷贝类型,参数主要有两个,一个是浅拷贝:SHALLOW_COPY,另一个则是深拷贝:DEEP_COPY_OBJECTS,关于拷贝类型的不同和利弊可以参照一般C++书籍。关于OSG中的拷贝类型可以参照类osg::CopyOp。

    参数

OSG教程:场景保存类Viewer

    类继承图表:

OSG教程:场景保存类Viewer

    virtual ~Viewer ()

    说明: 析构函数

    META_Object (osgViewer, Viewer)

    说明:是一个宏,宏中定义了标准Clone,且具有isSameAs,ClassName,accept三个重要方法。目的是让从Node派生的子类方便的定义所需要的纯虚方法。

    参数

META_Object (osgViewer, Viewer)

    virtual void take (View &rhs)

    说明:功能是从一个View中得到它的所有设置,这其中包括相机和子相机以及子视口等等,得到后View会被销毁。

    参数

virtual void take (View &rhs)

    virtual bool readConfiguration (const std::string &filename)

    说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是读取一个配置文件来配置Viewer.现实中并不是常用读配置文件的方法来设置Viewer.如果读取成功,则返回True,返则返回假。

    参数

virtual bool readConfiguration (const std::string &filename)

    virtual bool isRealized () const

    说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是看Viewer是否已经执行了Realize操作,如果执行了则返回真,事则返回假。

    virtual void realize ()

    说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是该操作会使对Viewer之前的设置都使之生效。

    virtual void setStartTick (osg::Timer_t tick)

    说明:该方法是从类osgViewer::View中继承下来的方法,功能是设置时钟开始滴答点数,从那里开始计时。可以用于计算程序运行的时间等等。

    参数

virtual void setStartTick (osg::Timer_t tick)

    void setReferenceTime (double time=0.0)

    说明:设置参考时间,与上一个函数配合来使用。

    virtual void setSceneData (osg::Node *node)

    说明:设置场景中的数据,为场景中渲染的实际数据,在事面会讲解osg::Node类型。

    参数

OSG教程:场景保存类Viewer

    virtual GraphicsWindowEmbedded * setUpViewerAsEmbeddedInWindow (int x, int y, int width, int height)

    说明:该函数的功能是以嵌入式窗口的形式来设置该Viewer的渲染面。返回指向嵌入式界面指针。

    参数

OSG教程:场景保存类Viewer

    virtual double elapsedTime ()

    说明:该函数可以计算程序执行的时间,返回值为程序执行的时间,一般为毫秒级。

     virtual osg::FrameStamp * getViewerFrameStamp ()

    说明:这个函数返回当前Viewer的一个FrameStamp,至于什么是FrameStamp,大意是说规定两个时间,在此时间中规定帧的数目,在渲染时会按照这个帧数来把帧压在这个时间段当中。

     virtual int run () 说明:开始执行渲染操作,返回值一般为1。程序退出或出错时会返回0。

    virtual void advance (double simulationTime=USE_REFERENCE_TIME)

    说明:高级,表示从默认参考时间开始会计算一些信息,帧速,帧率,帧间隔等等。

     参数

    virtual void advance (double simulationTime=USE_REFERENCE_TIME)

    virtual void eventTraversal ()

    说明:事件遍历,遍历外部事件来处理场景中因事件发生而引起的渲染变化。

    virtual void updateTraversal ()

    说明:更新遍历,遍历更新场景的数据渲染。

    void setCameraWithFocus (osg::Camera *camera)

    说明:设置相机。

    参数

OSG教程:场景保存类Viewer

    osg::Camera * getCameraWithFocus () const osg::Camera * getCameraWithFocus () const

    说明:得到相机,返回值为一个相机。

    virtual void getCameras (Cameras &cameras, bool onlyActive=true)

    说明:得到相机群。参数一为引用类型,执行该函数后cameras就含有了Viewer的相机群。关于引用参数可以参考C++基本书籍。第二个参数问是否获得激活可用的相机群,而不可用的不获得,默认值为真。

    参数

virtual void getCameras (Cameras &cameras, bool onlyActive=true)

    virtual void getContexts (Contexts &contexts, bool onlyValid=true)

    说明:得到上下文,参数一为引用类型,执行该函数后contexts中就含有了Viewer的上下文,关于引用参数可以参考C++基本书籍。第二个参数问是否获得激活可用的上下文,而不可用的不获得,默认值为真。

    参数

OSG教程:场景保存类Viewer

    virtual void getWindows (Windows &windows, bool onlyValid=true)

    说明:得到Windows,这里的Windows并不能直接理解为所谓的窗口,应该理解为一个渲染面。执行该函数后windows中就含有了Viewer中的windows,关于引用参数可以参考C++基本书籍。第二个参数问是否获得激活可用的窗口,而不可用的不获得,默认值为真。

    参数

virtual void getWindows (Windows &windows, bool onlyValid=true)

    virtual void getAllThreads (Threads &threads, bool onlyActive=true)

    说明:得到所有当前Viewer中的线程,执行该函数后threads中会有该Viewer的线程,关于引用参数可以参考C++基本书籍。第二个参数问是否获得正在激活的线程,而不激活的线程不获得,默认值为真。

    参数

virtual void getAllThreads (Threads &threads, bool onlyActive=true)

    virtual void getOperationThreads (OperationThreads &threads, bool onlyActive=true)

    说明:得到操作线程[OperationThreads],执行该函数后threads中会有该Viewer的操作线程,关于引用参数可以参考C++基本书籍。第二个参数问是否获得正在激活的操作线程,而不激活的线程不获得,默认值为真。

    参数

virtual void getOperationThreads (OperationThreads &threads, bool onlyActive=true)

    virtual void getScenes (Scenes &scenes, bool onlyValid=true)

    说明:得到当前Viewer的Scenes, 执行该函数后scnes中会有该Viewer的scenes,关于引用参数可以参考C++基本书籍。第二个参数问是否获得可用的scenes,而不可用的scenes不获得,默认值为真。

    参数

virtual void getScenes (Scenes &scenes, bool onlyValid=true)

    virtual void getViews (Views &views, bool onlyValid=true)

    说明:得到当前Viewer的View,执行该函数后views中会有该Viewer的views,关于引用参数可以参考C++基本书籍。第二个参数问是否获得可用的views,而不可用的不获得,默认值为真。

    参数

virtual void getViews (Views &views, bool onlyValid=true)

    virtual void getUsage (osg::ApplicationUsage &usage) const

    说明:得到当前Viewer的命令行描述。

    参数

virtual void getUsage (osg::ApplicationUsage &usage) const

这篇关于OSG教程:场景保存类Viewer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889958

相关文章

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn