news 2026/6/26 11:08:54

OCCT 实战(5)AIS | 5.1、AIS_InteractiveObject 类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OCCT 实战(5)AIS | 5.1、AIS_InteractiveObject 类

文章目录

  • 一、`AIS_InteractiveObject` 类
    • 1、核心功能
    • 2、工作原理
      • 2.1、核心设计逻辑
      • 2.2、核心工作流程(与AIS上下文联动)
        • (1)初始化并注册对象
        • (2)显示模式校验(AcceptDisplayMode)
        • (3)可视化渲染(Compute)
        • (4)交互选择(ComputeSelection)
        • (5)动态更新
      • 2.3、关键依赖与联动对象
    • 3、核心接口

前言:

AIS_InteractiveObject是 OCCT 中用于可视化交互的核心类之一,属于 AIS(Application Interactive Services)模块。它代表一个可以在 3D 视图中显示并与用户交互的几何或拓扑对象(如点、线、面、体等),是所有可交互显示对象的基类。

一、AIS_InteractiveObject

1、核心功能

  • 可视化显示:将底层的TopoDS_Shape或自定义几何数据以图形方式渲染到 3D 视图中。
  • 交互支持:支持选择(Selection)、高亮(Highlighting)、动态更新(Dynamic Update)等交互操作。
  • 显示模式管理:支持多种显示模式(Display Mode),例如线框(Wireframe)、着色(Shaded)、带边界着色(Shaded with edges)等。
  • 属性定制:可设置颜色、透明度、线宽、材质等视觉属性。
  • 选择机制集成:与 OCCT 的选择服务(Selection Services)集成,支持通过鼠标点击选中对象。

2、工作原理

AIS_InteractiveObject主要负责将底层几何/拓扑数据(如TopoDS_Shape)与 3D 图形显示、用户交互(如选择、高亮)桥接起来。

2.1、核心设计逻辑

AIS_InteractiveObject的本质是数据封装+接口标准化

  • 封装层:将几何数据(如拓扑形状、点、文本)与交互属性(颜色、显示模式、选择优先级)绑定;
  • 接口层:定义标准化的渲染、选择、模式校验接口,由子类(如AIS_ShapeAIS_Text)实现具体逻辑;
  • 联动层:通过AIS_InteractiveContext(场景上下文)管理生命周期,完成渲染、选择、操纵的调度。

2.2、核心工作流程(与AIS上下文联动)

AIS_InteractiveObject无法独立工作,必须依附AIS_InteractiveContext(场景上下文),完整流程如下:

1. 初始化 → 2. 显示校验 → 3. 渲染 → 4. 交互选择 → 5. 动态更新
(1)初始化并注册对象
  • 开发者创建AIS_IO子类实例(如AIS_Shape),绑定几何数据(如TopoDS_Shape);
  • 通过AIS_InteractiveContext::Display(aisObj)将对象注册到场景上下文,上下文接管对象的生命周期。
(2)显示模式校验(AcceptDisplayMode)
  • 上下文调用AcceptDisplayMode(theMode),判定对象是否支持指定显示模式(如着色AIS_Shaded、线框AIS_WireFrame);
  • 若返回false,则拒绝显示该模式;若返回true,进入渲染阶段。
(3)可视化渲染(Compute)
  • 上下文调用Compute()接口,触发子类生成GPU可渲染的图元数据(如Graphic3d_ArrayOfTrianglesGraphic3d_ArrayOfSegments);
  • 渲染数据存入Prs3d_Presentation容器,由PrsMgr_PresentationManager3d(渲染管理器)提交到Graphic3d_Structure,最终在V3d_View中绘制;
  • 触发时机:首次显示、显示模式切换、几何数据修改后Redisplay()
(4)交互选择(ComputeSelection)
  • 鼠标点击/框选时,上下文调用ComputeSelection()接口,子类生成选择敏感区域(如Select3D_SensitiveFaceSelect3D_SensitiveEdge);
  • 上下文通过SelectMgr_SelectionManager检测鼠标坐标是否命中敏感区域,若命中则标记对象为“选中”,并触发高亮/操纵逻辑;
  • 核心:选择逻辑与渲染逻辑分离,可自定义选择优先级、敏感区域(如仅允许选面,不允许选边)。
(5)动态更新
  • 几何数据修改后,调用AIS_InteractiveContext::Redisplay(aisObj),上下文重新调用Compute()生成新渲染数据,实现重绘;
  • 选择模式切换时,重新调用ComputeSelection()生成对应敏感区域,适配不同选择规则。

2.3、关键依赖与联动对象

AIS_InteractiveObject的工作依赖以下核心组件,形成完整闭环:

组件作用
AIS_InteractiveContext场景上下文,调度AIS_IO的显示/选择/更新
Prs3d_Presentation渲染容器,存储Compute生成的图元数据
SelectMgr_Selection选择容器,存储ComputeSelection生成的敏感区域
V3d_View3D视图,最终渲染载体

3、核心接口

AIS_InteractiveObject本质是OCCT为3D交互对象制定的标准化协议,子类只需实现Compute(画什么)、ComputeSelection(选哪里)、AcceptDisplayMode(支持哪些模式),即可快速适配AIS框架的渲染与交互能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 22:16:43

6G+AI=?6G与AI融合会带来什么?

6GAI?6G与AI融合会带来什么? 6G与AI,并非两条并行的轨道。AI赋能6G创新,6G又将AI的触角延伸到各领域。两者融合、相互赋能,构筑起智能时代的数字底座。 国家战略布局与政策支持 在“十五五”规划建议中,…

作者头像 李华
网站建设 2026/6/26 1:03:31

(Open-AutoGLM认证失败应急方案)生产环境必备的4个容错技巧

第一章:Open-AutoGLM 认证失败处理优化在 Open-AutoGLM 系统中,认证机制是保障服务安全访问的核心组件。当客户端请求认证失败时,系统若未进行合理响应与日志追踪,可能导致调试困难或安全审计缺失。为此,需对认证失败的…

作者头像 李华
网站建设 2026/6/24 1:15:02

(Open-AutoGLM报销避雷手册):从驳回到秒批的4个关键操作

第一章:Open-AutoGLM报销避雷全景图在企业自动化报销系统中,Open-AutoGLM 作为基于开源大语言模型的智能解析引擎,正被广泛应用于发票识别与合规性校验。然而,在实际部署过程中,若缺乏对关键风险点的系统性把控&#x…

作者头像 李华
网站建设 2026/6/23 14:56:50

31、深入解析Windows Server虚拟化与负载均衡技术

深入解析Windows Server虚拟化与负载均衡技术 在Windows Server环境中,虚拟机的管理和网络负载均衡是保障系统高效运行和高可用性的关键技术。下面将详细介绍虚拟机迁移、网络健康保护、关机排水以及网络负载均衡等方面的内容。 虚拟机迁移 暂停对集群角色的影响 :虚拟机…

作者头像 李华
网站建设 2026/6/26 0:09:02

32、服务器集群与更新服务配置指南

服务器集群与更新服务配置指南 1. 网络负载均衡(NLB)集群配置 1.1 规则选择与流量处理 禁用规则 :选择“禁用”会阻止集群接受符合该规则的任何流量,可用于创建阻止特定 IP 地址或端口流量的规则。 多主机选项 :选择“多主机”选项时,符合规则的流量会分布到集群的…

作者头像 李华
网站建设 2026/6/26 5:32:06

33、Windows Server 2016 系统管理与安全防护指南

Windows Server 2016 系统管理与安全防护指南 1. WSUS 配置与管理 1.1 WSUS 初始同步 在完成 Windows Server Update Services 配置向导的“完成”页面后,勾选“开始初始同步”复选框并点击“完成”,WSUS 便会开始与上游服务器同步,并下载可用更新的相关信息。 1.2 配置…

作者头像 李华