Open CASCADE基础介绍(5)

原创 2008年10月28日 18:11:00
 

Open CASCADE基础介绍(5

Graphic2d_ImageFile

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

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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_LineAIS_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 = Standard_True) ;

 

--从每个视图中移除对象; 

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

 

--从所有打开的设备中移除所有对象;

 void RemoveAll(const Standard_Boolean updateviewer = Standard_True) ;

 

--通过鼠标动态检测,感知的图元被高亮显示。缺省的鼠标移过时的颜色为白色。

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

 

--改变视图中线的颜色;

 void HilightWithColor(const Handle(AIS_InteractiveObject)& aniobj,const Quantity_NameOfColor aCol,const Standard_Boolean updateviewer = Standard_True) ;

 

--从入口对象中移除高亮;更新视图;

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

 

--设置显示的优先权;

void SetDisplayPriority(const Handle(AIS_InteractiveObject)& anIobj,const Standard_Integer aPriority) ;

 

--设置所看到的交互对象的显示模式;

 void SetDisplayMode(const Handle(AIS_InteractiveObject)& aniobj,const Standard_Integer aMode,const Standard_Boolean

updateviewer = Standard_True) ;

 

--设置/移除交互对象的选择模式:

void SetSelectionMode(const Handle(AIS_InteractiveObject)& aniobj,const Standard_Integer aMode) ;

void UnsetSelectionMode(const Handle(AIS_InteractiveObject)& aniobj) ;

 

--设置感知的精度:

void SetSensitivity(const Standard_Real aPrecision) ;

 

--定义当前选择感知的像素:

void SetSensitivity(const Standard_Integer aPrecision = 4) ;

 

--设置/重置初始图形的位置;如果有一个位置返回为真;

void SetLocation(const Handle(AIS_InteractiveObject)& aniobj,const TopLoc_Location& aLocation) ;

void ResetLocation(const Handle(AIS_InteractiveObject)& aniobj) ;

Standard_Boolean HasLocation(const Handle(AIS_InteractiveObject)& aniobj) const;

 

得到实体对象的位置;

const TopLoc_Location& Location(const Handle(AIS_InteractiveObject)& aniobj) const;

 

--改变当前面的模式;缺省模式是Aspect_TOFM_TWO_SIDE。意味着属性在前面和后面都应用;

void SetCurrentFacingModel(const Handle(AIS_InteractiveObject)& aniobj,const Aspect_TypeOfFacingModel aModel =

Aspect_TOFM_BOTH_SIDE) ;

 

--设置/获得三角形的尺寸,缺省值是<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />100mm.

void SetTrihedronSize(const Standard_Real aSize,const Standard_Boolean updateviewer = Standard_True) ;

Standard_Real TrihedronSize() const;

 

--设置/获取平面的尺寸:

Standard_EXPORT   void SetPlaneSize(const Standard_Real aSizeX,const Standard_Real aSizeY,const Standard_Boolean

updateviewer = Standard_True) ;

 

--得到实体对象的显示状态;

AIS_DisplayStatus DisplayStatus(const Handle(AIS_InteractiveObject)& anIobj) const;

 

--得到实体对象的显示模式的列表:

 const TColStd_ListOfInteger& DisplayedModes(const Handle(AIS_InteractiveObject)& aniobj) const;

 

--关于绘制隐藏线相关的一些函数,通过名称就可以知道函数的意思;

EnableDrawHiddenLine();

DisableDrawHiddenLine();

Standard_Boolean DrawHiddenLine()

 

--设置/得到UV等高参数;等高参数是否可用;

 Standard_Integer IsoNumber(const AIS_TypeOfIso WhichIsos = AIS_TOI_Both) ;

 

--设置/添加/移除当前对象.....

InitCurrent() ;MoreCurrent();NextCurrent();

Standard_Boolean IsCurrent(const Handle(AIS_InteractiveObject)& aniobj) const;

Handle_AIS_InteractiveObject Current() const;

Handle_AIS_InteractiveObject FirstCurrentObject() ;

void HilightCurrents(const Standard_Boolean updateviewer = Standard_True) ;

void UnhilightCurrents(const Standard_Boolean updateviewer = Standard_True) ;

void ClearCurrents(const Standard_Boolean updateviewer = Standard_True) ;

 

 

Mybatis各种模糊查询

模糊查询: 工作中用到,写三种用法吧,第四种为大小写匹配查询   1. sql中字符串拼接    SELECT * FROM tableName WHERE name LIKE CONCAT(...
  • luqin1988
  • luqin1988
  • 2012年08月14日 16:36
  • 76799

Spring+Mybatis整合事务不起作用之解决方案汇总

前言: 公司最近一个项目用到Spring和Mybatis,发现用起来挺方便,比以前的那个struts+hibernate舒服多了。废话少说,直接摆问题,碰到的问题是,mybatis不在事务中运...
  • walkerJong
  • walkerJong
  • 2012年08月07日 16:32
  • 27420

Open CASCADE基础介绍(4)

Open CASCADE基础介绍(4)gp_Trsf类定义一个矩阵变换的类--可以定义平移、旋转、缩放的矩阵;--可以对称于一个点,一条线,一个平面;示例一:对称于一个点:gp_Trsf theTra...
  • dandanCool
  • dandanCool
  • 2008年10月28日 18:08
  • 4078

Open CASCADE基础介绍(2)

Open CASCADE基础介绍(2)一些OCC的基础知识,愿与各位OCC爱好者共同学习;mail:tongabcd@yeah.net 一:关于体的类BRepBuilderAPI_MakeVertex...
  • dandanCool
  • dandanCool
  • 2008年10月27日 12:36
  • 6986

Mybatis极其(最)简(好)单(用)的一个分页插件

以前为Mybatis分页查询发愁过,而且在网上搜过很多相关的文章,最后一个都没采用。在分页的地方完全都是手写分页SQL和count的sql,总之很麻烦。 后来有一段时间想从Mybatis内部写一个分...
  • isea533
  • isea533
  • 2014年04月16日 12:32
  • 178883

mybatis_SQL映射(2)

1. sql的重用:定义一个sql片段,可在任何SQL语句中重用该片段。 personColumns"> name, sex, updateTime select id, from person...
  • y172158950
  • y172158950
  • 2013年12月11日 15:48
  • 30805

Open CASCADE基础介绍(1)

Open CASCADE基础介绍(1)一直在用OCC作项目,但这方面的中文资料很少,看来OCC在中国还不是十分普及;后来,项目中使用OCC和DirectX结合使用,取得了很好的效果; 随着OCC6.3...
  • dandanCool
  • dandanCool
  • 2008年10月24日 17:27
  • 8970

Open CASCADE基础介绍(3)

 Open CASCADE基础介绍(3) BRepBuilderAPI_Sewing类 将多个邻近图形“缝合”成为一个图形;同时有多个边的情况下无法缝合;一般操作过程是:--创建一个空对象;    缺...
  • dandanCool
  • dandanCool
  • 2008年10月27日 19:25
  • 4786

烤鸭的gerrit使用总结

1. 前言 最近在摸索git + gerrit代码审核的工作模式,需要安装gerrit服务器,经过一阵折腾,走了不少弯路,在此做下笔记,以便自己或者他人参考。有误的地方请指教。 我的环境如下: ...
  • benkaoya
  • benkaoya
  • 2013年03月16日 13:27
  • 162033

mybatis+spring+struts2框架整合

1、MyBatis-Spring简介: MyBatis-Spring帮助你无缝地整合MyBatis代码到Spring中。使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和sessio...
  • u011067360
  • u011067360
  • 2014年01月02日 13:35
  • 2674
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Open CASCADE基础介绍(5)
举报原因:
原因补充:

(最多只允许输入30个字)