opencascade AIS_InteractiveContext源码学习5 immediate mode rendering 即时模式渲染

本文主要是介绍opencascade AIS_InteractiveContext源码学习5 immediate mode rendering 即时模式渲染,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AIS_InteractiveContext

在这里插入图片描述

前言

交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才能直接调用交互对象的方法。

每个可选择的对象必须指定负责整体选择对象的选择模式(全局选择模式)。交互上下文本身支持使用选择过滤器进行分解对象的选择。默认情况下,全局选择模式等于0,但如果需要,可以重新定义。

immediate mode rendering 即时模式渲染

1:BeginImmediateDraw

初始化要显示的演示文稿列表,如果没有打开本地上下文,则返回 False。

2:ImmediateAdd

如果 <anIObj> 已存储在列表中,则返回 True。

3:EndImmediateDraw

重载1:使用主视图的第一个活动视图!如果立即显示已完成,则返回 True。
重载2:如果立即显示已完成,则返回 True。

4:IsImmediateModeOn

初始化要显示的演示文稿列表,如果没有打开本地上下文,则返回 False。

5:RedrawImmediate

重新绘制所有视图中的即时结构,考虑其可见性。

用法示例

在 opencascade 中,AIS_InteractiveContext 类提供了与交互式场景中对象显示和交互相关的功能。Immediate mode rendering(即时模式渲染)通常用于实时更新或重新绘制图形对象,以反映用户操作或其他实时变化。

在 AIS_InteractiveContext 中,使用 immediate mode rendering 可能涉及以下操作:

  1. 更新对象属性:通过 AIS_InteractiveObject 类的方法,可以实时更新对象的颜色、线型、填充样式等属性,并立即反映在视图中。

    Handle(AIS_InteractiveObject) anIObj = ...; // 获取交互式对象
    anIObj->SetColor(...); // 更新颜色
    anIObj->SetWidth(...); // 更新线宽
    context->Redisplay(anIObj, Standard_True); // 重新显示对象
    
  2. 重新显示对象:调用 AIS_InteractiveContext 的 Redisplay 方法可以重新显示对象,使其在视图中立即更新。

    context->Redisplay(anIObj, Standard_True); // 重新显示对象
    
  3. 设置显示模式:通过 AIS_DisplayMode 可以设置对象的显示模式,例如 Wireframe、Shading、Color、Selection 等,以及选择是否实时更新。

    anIObj->SetDisplayMode(AIS_Shaded, Standard_True); // 设置显示模式为 Shading 并实时更新
    
  4. 管理视图更新:在使用 immediate mode rendering 时,通常需要管理视图的更新,确保对象属性和显示模式的更改能够即时反映在所有视图中。

    context->UpdateCurrentViewer(); // 更新当前视图
    

这些操作结合使用,可以实现在 opencascade 的 AIS_InteractiveContext 中进行 immediate mode rendering,以便实时更新和重新绘制交互式对象的显示效果。

继续management of active Selection Modes

这篇关于opencascade AIS_InteractiveContext源码学习5 immediate mode rendering 即时模式渲染的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3