教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

Open CASCADE基础介绍(12)

来源:网络收集 时间:2026-08-23
导读: Standard_EXPORT Handle_AIS2D_InteractiveContext GetContext() const; Graphic2d_GraphicObject类是AIS2D_InteractiveObject类的基类;在一 个view内创建一个图形对象,一个图形对象管理一系列图元;默认值为:空

Standard_EXPORT

Handle_AIS2D_InteractiveContext GetContext() const;

Graphic2d_GraphicObject类是AIS2D_InteractiveObject类的基类;在一

个view内创建一个图形对象,一个图形对象管理一系列图元;默认值为:空,可输出,可绘制,可拾取,不显示,不高亮,优先权为0; 主要方法:

设置视图,设置一个变形,设置获取图层,设置获取优先权,禁用/使用输出,是否可输出,禁用/使用Draw.是否可显示,Erase,高亮显示,颜色,拾取等 Open CASCADE基础介绍(5)

Graphic2d_ImageFile类定义一个图像,以图

像的中心位置作为插入点,X,Y定义在模型空间的位置,adx,ady 定义在设备空间的偏移量.ascale定义一个缩放系数;

Aspect_WidthMap类定义一个WidthMap集合对象;

主要方法有, --添加一个入口:

Standard_Integer AddEntry(const Aspect_WidthOfLine aStyle) ; void AddEntry(const Aspect_WidthMapEntry& AnEntry) ; Standard_Integer AddEntry(const Quantity_Length aStyle) ;

--根据索引得到一个入口:

Aspect_WidthMapEntry Entry(const Standard_Integer AnIndex) const;

示例:

--定义private :

Handle(Aspect_WidthMap) myWidthMap; --遍历:

for(int i =1;i<=myWidthMap->Size();i++) {

Aspect_WidthMapEntry aWidthMapEntry = myWidthMap->Entry(i); }

--得到一个入口:

Aspect_WidthMapEntry aWidthMapEntry = myWidthMap->Entry(CurrentSelectionIndex);

Aspect_TypeMap类定义一个线型集合对象:

Aspect_MarkMap类定义一个MarkMap集合对象;

Aspect_FontMap类定义一个字体集合对象;

Aspect_ColorMap类定义一个颜色集合对象;

GGraphic2d_SetOfCurves类基类是:Graphic2d_Line;

定义一图元为由多个curves 的集合;主要方法有添加一个curves, 得到curves的数量,得到其中一个curves等;只绘制其中一个元素,是否为拾取状态;

示例:

Handle(Prs2d_AspectLine) aLineAspect = new Prs2d_AspectLine;

aLineAspect->SetTypeOfFill(Graphic2d_TOPF_EMPTY);

aLineAspect->SetTypeIndex(...);

aLineAspect->SetColorIndex(...);

aLineAspect->SetWidthIndex(...);

Handle(Graphic2d_SetOfCurves) segment;

segment = new Graphic2d_SetOfCurves(this);

segment->Add(myGeom2dCurve);

将此曲线集合应用所定义的线型线宽等;

SetAspect(aLineAspect, segment);

创建交互式对象相关的类介绍

AIS_Line此类的继承关系是:

Standard_Transient->MMgt_TShared->PrsMgr_PresentableObject-->SelectMgr_SelectableObject-->AIS_InteractiveObject->AIS_Line

Standard_Transient:抽象类,主要定义分配空间,得到类型,引用计数等; MMgt_TShared:抽象类,主要用来管理对象的内存; PrsMgr_PresentableObject类:表示一个可表达的二维或三维图形对象;主要方法有设置位置,更新,图形类型等; 此类的派生类类型有: -AIS_InteractiveObject -AIS_ConnectedInteractive

-AIS_MultipleConnectedInteractive -AIS_Shape

SelectMgr_SelectableObject类:表示一个可选择的对象;

AIS_Line,AIS_Circle等类定义一个直线,园等;主要方法有,返回对

象的类型,设置线宽,线型,颜色等; 示例:

GC_MakeCircle C(gp_Pnt(-100.,-300.,0.),gp_Pnt(-50.,-200.,0.),gp_Pnt(-10.,-250.,0.));

Handle(AIS_Circle) anAISCirc = new AIS_Circle(C.Value());

myAISContext->Display(anAISCirc);

AIS_InteractiveContext类交互式设备类,可以用它来管理交互式图形对象,

可以在一个或多个视图中。如果图形对象已经装入交互式设备,可以直接调用交互式对象的方法。

使用设备时必须区分两种状态:

-没有打开本地设备。也称为不确定点; -打开了一个或多个设备;

有的方法可以使用在打开的设备中,有的方法用在关闭的设备中,有的方法与设备状态无关; --当想工作在一个入口类型上,应设置选项UseDisplayedObjects为假,可显示对象可以重新可视化交互对象;

--当使用缺省的选项来打开一个设备时,注意:

:可视化的交互对象在缺省选择模式下是活动的,必须分离那些不想使用的对象; :交互式对象可以自动分解为子图形; :“临时的”交互对象不会自动计入总数,,如果想使用它,必须手动装载它; 使用过程是:

--用正确的选项打开设备; --装载/显示对象;

--如果需要,激活标准模式;

--创建一个过滤器,添加到设备中; --查找/选择/重置所需的入口; --根据索引关闭设备;

--创建一个交互设备编辑器很有用,可以设置不同的设备用不用的选择/表达方式;

常见方法:

--如果没有设备打开,交互对象没有显示模式,缺省的显示模式是0,如果一个设备是打开的并且更新为假,对象不会更新显示。

void Display(const Handle(AIS_InteractiveObject)& anIobj,const Standard_Integer amode,const Standard_Integer

aSelectionMode,const Standard_Boolean updateviewer = Standard_True,const Standard_Boolean allowdecomposition = Standard_True) ;

--使用给定的选择模式载入一个交互对象:

void Load(const Handle(AIS_InteractiveObject)& aniobj,const Standard_Integer SelectionMode = -1,const Standard_Boolean

AllowDecomp = Standard_False) ;

--擦除一个对象:如果putinCollector为假,对象被擦除但不放入集合中;

void Erase(const Handle(AIS_InteractiveObject)& aniobj,const Standard_Boolean updateviewer = Standard_True,const

Standard_Boolean PutInCollector = Standard_True) ;

--擦除视图集合中的每个对象;

void EraseAll(const Standard_Boolean PutInCollector = Standard_True,const Standard_Boolean updateviewer = Standard_True) ;

--从集合中显示所有对象;

void DisplayAll(const Standard_Boolean OnlyFromCollector = Standard_True,const Standard_Boolean updateviewer = Standard_True) ;

--从集合中显示一个对象; void DisplayFromCollector(const Handle(AIS_InteractiveObject)& anIObj,const Standard_Boolean updateviewer = Standard_True)

--擦除选择的对象;

void EraseSelected(const Standard_Boolean PutInCollector = Standard_True,const Standard_Boolean updateviewer = Standard_True) ;

--改变临时对象的状态,

Standard_Boolean KeepTemporary(const Handle(AIS_InteractiveObject)& anIObj,const Standard_Integer InWhichLocal = -1) ;

--从所有的视图中移除交互对象;

void Clear(const Handle(AIS_InteractiveObject)& aniobj,const Standard_Boolean updateviewer = Stand …… 此处隐藏:1930字,全部文档内容请下载后查看。喜欢就下载吧 ……

Open CASCADE基础介绍(12).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/591939.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)