OCC.Core.AIS
(Application Interactive Services)是Open CASCADE Technology (OCCT) 库中的一个核心模块,专门用于实现3D图形的交互功能。它提供了丰富的类和方法,使得开发人员能够创建高度互动的3D应用,如CAD软件、模拟工具和可视化系统。AIS
模块使得用户能够通过图形界面与3D模型进行交互,包括选择、高亮、移动、旋转、缩放等操作。以下是AIS
模块的主要作用及常用库和方法介绍:
主要作用
-
交互式可视化:允许用户通过图形界面直观地查看和操作3D模型,包括但不限于选择、高亮、显示模式切换(线框、着色、阴影)等。
-
选择机制:提供多种选择模式,如形状、顶点、边、面等,支持复杂的用户交互逻辑。
-
高亮与反馈:对用户选择的对象进行高亮显示,提供视觉反馈,增强用户体验。
-
显示管理:管理对象的显示状态,包括显示/隐藏、颜色、透明度、材质属性等。
-
交互逻辑:支持自定义交互逻辑,如鼠标和键盘事件处理,实现特定应用需求的交互功能。
主要库及常用方法
AIS_InteractiveContext
- Display: (
Display(const Handle(AIS_InteractiveObject)& theObject, bool theUpdateViewer = Standard_True)
) - 将交互对象添加到场景并显示。 - Remove: (
Remove(const Handle(AIS_InteractiveObject)& theObject)
) - 从场景中移除交互对象。 - SetSelectionMode: (
SetSelectionMode(AIS_SelectionMode theMode)
) - 设置选择模式。 - Select: (
Select(const SelectMgr_SelectableObject& theSelObj, const Graphic3d_Vec2i& thePnt, const Handle(SelectMgr_SelectAction)& theAction, const Handle(SelectBasics_PickFilter)& theFilter = NULLHANDLE)
) - 根据屏幕坐标选择对象。 - Hilight: (
Hilight(const Handle(AIS_InteractiveObject)& theIObj, bool UpdateViewer = Standard_True)
) - 高亮显示指定的交互对象。 - ClearHilight: (
ClearHilight()
) - 清除所有高亮显示。
AIS_InteractiveObject
- SetTransform: (
void SetTransform(const gp_Trsf& theTrsf)
) - 设置对象的变换矩阵,用于移动、旋转或缩放对象。 - SetColor: (
void SetColor(const Quantity_Color& theColor)
) - 设置对象的颜色。 - SetMaterial: (
void SetMaterial(const Graphic3d_MaterialAspect& theMaterial)
) - 设置对象的材质属性。
AIS_Shape
- 通常继承自
AIS_InteractiveObject
,专门用于显示和交互TopoDS_Shape
类型的几何对象。 - ctor: (
AIS_Shape(const TopoDS_Shape& theShape)
) - 构造函数,接受一个TopoDS_Shape
实例。
其他重要类
- AIS_Global: 提供全局设置和状态,如激活的默认选择模式。
- AIS_Manipulator: 用于实现对象的交互式操作,如平移、旋转和缩放。
- AIS_Selection: 处理选择操作的结果,提供选中对象的详细信息。
使用场景
- 在CAD软件中,实现模型的浏览、选择、编辑等功能。
- 在工程分析和模拟软件中,高亮显示分析结果或模拟过程中的关键要素。
- 在产品演示和培训应用中,提供直观的3D交互体验。
总之,OCC.Core.AIS
模块是OCCT库中实现3D图形交互的关键组成部分,为开发具有丰富交互功能的应用程序提供了强大的支持。