OCC笔记:选择TopoDS_Shape顶点、边、面等等 1、通过AIS_InteractiveContext的函数访问当前选择的图形 hAISContext->InitSelected(); hAISContext->MoreSelected(); hAISContext->NextSelected(); hAISContext->SelectedShape(); 其中hAISContext->SelectedShape()通过StdSelect_BrepOwner来获取TopoDS_Shape,具体的参看源码即...
具体来说,你可以使用AIS_InteractiveContext类的Pick方法来执行拾取操作。 将鼠标位置转换为OCC的拾取坐标: 由于鼠标位置通常是以屏幕坐标表示的,而OCC的拾取操作需要在三维空间中进行,因此你需要将屏幕坐标转换为三维空间中的坐标。这通常涉及到视图的投影矩阵和视图变换矩阵的计算。 执行拾取操作,获取鼠标下的图形: ...
AIS_InteractiveObject是一个抽象类,用于表示可交互的3D对象,而AIS_Shape则是AIS_InteractiveObject的子类,用于表示具体的形状。本文将介绍如何在OCC中将AIS_InteractiveObject转换为AIS_Shape,并详细阐述这一过程的五个主要步骤。 正文内容: 1.获取AIS_InteractiveObject对象 1.1使用AIS_InteractiveContext类的方法获取AIS_...
通过AIS_InteractiveContext::SetDisplayMode()函数来设置 ◆AIS_DisplayMode enumAIS_DisplayMode Sets display modes other than neutral point ones, for interactive objects. The possibilities include: wireframe, shaded, Enumerator AIS_WireFrame 框架线显示 AIS_Shaded 实体显示...
接着创建了交互上下文AIS_InteractiveContext,并设置显示模式为着色。然后加入了View Cube,在occ 7.4.0版本开始,occ帮实现了一个View Cube,目前3d程序一般都有这个功能,在occ中,加入这个非常简单,只需要new一个AIS_ViewCube,然后设置下基本属性即可。最后使用BRepPrimAPI_MakeBox创建了一个box,然后加入显示,并且激活...
opencascade::handle<AIS_InteractiveContext> _pAisInteractiveContext; WId _wid; opencascade::handle<WNT_Window> _pWntWindow;};… occWidget.cpp …void OccWidget::initControl(){ // 初始化occ { // 显示到屏幕上 setAttribute(Qt::WA_PaintOnScreen); ...
在屏幕上显示一个对象需要由三种实体协作完成,即:可显像的交互对象、浏览器和交互环境,在OCC中分别由三种类实现,AIS_InteractiveObject、Viewer和AIS_InteractiveContext. 1.可显像的交互对象类: 可显像的交互对象类的用途就是提供给要显示对象的Graphic2d或Graphic3d图形结构。首先,根据显示请求,可显像的交互对象类会调用...
(_pOpenGLGraphicDriver);// 创建交互上下文对象,关联到3D查看器_pAisInteractiveContext=newAIS_InteractiveContext(_pV3dViewer);// 创建视图,并关联到3D查看器_pV3dView=_pV3dViewer->CreateView();// 获取窗口句柄并创建WNT_Window_wid=winId();_pWntWindow=newWNT_Window((Aspect_Handle)_wid);// 设置视图...
Handle(AIS_InteractiveContext) context; //window NT窗口 Handle(WNT_Window) window; Standard_Integer m_x;//记录鼠标平移坐标X Standard_Integer m_y;//记录鼠标平移坐标y Action3d m_mode;//平移、缩放、旋转 OCC occ; }; 下面是.cpp文件 #include "study.h"//引用study.h的头文件 ...
Handle(AIS_InteractiveContext)context;//window NT窗口Handle(WNT_Window)window;Standard_Integerm_x;//记录鼠标平移坐标XStandard_Integerm_y;//记录鼠标平移坐标yAction3dm_mode;//平移、缩放、旋转OCCocc;};#include"study.h"//引用study.h的头文件QtWidgetsApplication1::QtWidgetsApplication1(QWidget*parent)...