HOOPS基础培训课

上传人:沈*** 文档编号:242499756 上传时间:2024-08-25 格式:PPTX 页数:75 大小:247.75KB
返回 下载 相关 举报
HOOPS基础培训课_第1页
第1页 / 共75页
HOOPS基础培训课_第2页
第2页 / 共75页
HOOPS基础培训课_第3页
第3页 / 共75页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,HOOPS,基础培训课程安排,HOOPS,简介,1,HOOPS 3dGS,基础,1,HOOPS 3dGS API,1,HOOPS MVO,1,几何、属性、坐标,2,几何体的编辑,2,选择与高亮,3,大模型显示,3,动画,3,HOOPS Stream,3,HOOPS/ACIS Bridge,3,HOOPS,简介,Tech Soft America,(,TSA,)简介,SPATIAL,简介,HOOPS,产品介绍,什么是,HSF,?,HOOPS,编程的重点,HOOPS,组件简介,HOOPS 3dGS,简介,HOOPS MVO,简介,HOOPS Stream,简介,HOOPS GM Bridge,简介,使用组件的示例,Tech Soft America,(,TSA,)简介,1985,年,,HOOPS,的研究在,Cornell,大学展开,1987,年,,Ithaca,软件成立,HOOPS,技术商业化,1993,您年,,Ithaca,软件从,AutoDesk,购买了,HOOPS,,开发出,Heidi,(,AutoCAD,,,3D Studio MAX,的渲染引擎),1996,年,,TSA,成立 销售额和利润持续增长,超过,175 OEM,客户,CAD,、,CAM,、,CFD,、,FEA,、,Mining Engineering,Spatial,简介,1986,年,,Spatial,作为一个,CAM,软件,/,硬件公司成立最初的名称是:,Spatial Technology,2000,年,11,月,,Dassault Systemes,收购了,Spatial Technology,,现在,Spatial,完全归,Dassault Systemes,所有,2001,年,2,月,,Spatial,与,Tech Soft America,建立了合作关系,2003,年,5,月,,Spatial,加强了对,HOOPS,的集成,Spatial,提供,HOOPS ACIS Bridge,HOOPS,的产品介绍,HOOPS 3dAF,HOOPS,的核心产品,HOOPS Stream,工具包介绍,可以和,HOOPS Net Server,连接,HOOPS Stream,工具包,读写,HSF,文件(显示数据),高压缩比,网络显示,HOOPS Net Server,Client/Server,组件,协同功能,基于需求地,Streaming,功能,什么是,HSF,?,HSF,指的是,HOOPS Stream Format,处理,HOOPS,拥有的显示数据,高级动画功能,大模型的快速显示,高压缩比的文件存储,指出流化处理,支持灵活的图形数据交换,CATIA V5 R11,,,SolidWorks 2003,后续的版本中都支持,HSF,文件导出,OpenHSF,组织,提供读写工具包,免费浏览器,免费的,Active X,插件,HOOPS,编程要点,理解各个组件中的不同点,HOOPS/3dGS,HOOPS/MVO,HOOPS/MFC,HOOPS/Stream,HOOPS/GM Bridge,图形数据的设计,数据量,系统存储量和性能之间的平衡,依赖于程序的需求,字符串处理,Strcmp,、,strcat,、,wcsstr,许多函数都需要和字符串打交道,HC_Set_Color(,“,face=red,lines=blue,”,);,HOOPS,组件简介,HOOPS 3dGS,HOOPS /Stream,HOOPS/MVO,HOOPS/GUI,HOOPS/GM Bridge,Application,HOOPS 3dGS,简介,场景图,API,使用,HOOPS,的基本组件,用,C,语言实现。,APIs,可以用,C,C+,Fortran,Java,来调用,提供了大量的图形相关的函数,图形信息的创建,管理,查询和编辑,使用灵活方便,支持主流的操作系统,UNIXs,,,Linux,和,Windows,操作系统间的源代码都是共同的,支持多种输出设备,更高级别的图形内核,OpenGL,,,Direct3D,,,X11,,,Win GDI,,,PostScipt,,,HPGL2,,,CGM3,等,HOOPS MVO,简介,在应用层上的,C+,类库,HOOPS 3dGS,在内部被使用,实现了,3D,应用程序框架的功能,模型:文件的输入输出,模型的管理,显示:文字和相机的管理,操作:对象操作的管理,支持主流操作系统,UNIX,、,Linux,和,Windows,操作系统间的源代码都是共同的,提供源代码,%HOOPS%/Dev_Tools/hoops_mvo/source,HOOPS MFC,简介,从,GUI,工具包继承,MFC,、,ATL,、,Qt,、,Motif,、,Java/Swing,封装了所需要的操作,与窗口的连接,获得窗口句柄和窗口的,ID,号,将鼠标和键盘事件映射到了,HOOPS/MVO,封装了剪贴板,打印机和打印机预览,提供源代码,%HOOPS%/Dev_Tools/hoops_mfc/source,HOOPS Stream,简介,支持,HSF,的读写功能,数据是高度压缩的,大大缩短传输时间,数据的分类,流化处理,支持,2D,和,3D,支持,3dGS,中所有的几何体,提供源代码和说明文件,%HOOPS%/Dev_Tools/hoops_stream/source,格式易于扩展,可以独立于,3dAF,单独使用,HOOPS GM Bridge,简介,连接,HOOPS,与建模内核(如,ACIS,),封装了连接模型与,HOOPS,几何的函数,将模型映射到,HOOPS,几何,读写,SAT,文件,选择与高亮显示的处理,当创建和更新模型的时候,图形数据也被创建和更新,HOOPS ACIS Bridge,是,ACIS,组件的一部分,提供源代码,HOOPS,文档,HOOPS,文件夹结构,HOOPS,在线帮助,HOOPS 3dGS,参考,HOOPS 3dGS,函数模板,HOOPS,示例源代码,HOOPS,支持工具,HOOPS,文件夹结构,Bin,nt_i386,可执行文件和,dll,文件,Datasets,示例数据文件,Demo,每个,GUI,工具包的示例代码,Dev_ToolsHOOPS,库文件源代码,Docs,在线帮助,Fonts,字体文件,HOOPS,在线帮助,$(HOOPS)index.html, 3dGS,参考说明,3dGS,函数,IM,函数,旧的函数,系统启动,HOOPS 3dGS,函数模板,函数功能:,调用序列:,变量:,细节:,注意:,限制:,另见:,HOOPS,示例代码,%HOOPS%/Dev_Tools/,源目录,每一个组件都有源代码,当执行相同的函数功能时,用这些源代码作参考是很有用的,用户可以自定义并且扩展函数,%HOOPS%/demo/common/standard directly,使用,HOOPS 3dGS,的不同程序,作一些示例测试程序是很有用的,用来快速确定系统配置,HOOPS,支持的工具,HOOPS PartViewer,可以用来验证,HOOPS,的功能,【Tools】-【Test Performance】,【Tools】-【Keyframe Editor】,可以用来查询,HOOPS,的数据库,【Tools】-【Segment Browser】,在,”,/demo/mfc/hoopspartviewer,”,中提供了源代码,HOOPS ASCII Meta file,将,HOOPS,数据库作为一个文本文件来读写,HOOPS 3dGS,函数,HOOPS 3dGS,体系结构,图形对象数据库,对象遍历器,HC_Update_Display,渲染管道,HOOPS 3dGS,结构层次,图形对象数据库,对象遍历器,渲染管道,图形对象数据库,树结构,保存所有的图形对象,被称作为,“,段,”,的节点,对象是在层次中进行管理的。属性是通过继承来共享的,保留模式图形系统,几何的插入,查询和删除,显示次序得到优化,Segment,Segment,Segment,Segment,Segment,Segment,对象遍历器,在对象树中进行遍历,通过检查属性找到已经显示的几何,将相关的信息发送给渲染管道,使发送的数据量最小,Segment,Segment,Segment,Segment,Segment,Segment,对象遍历器,结构化的设,备接口,输入设备,接口,HC_Update_Display,更新图形数据库,HC_Update_Display(),遍历图形数据库,当图形数据库更新的时候,调用,HC_Update_Display(),的次数与更新的次数并不是相同的,对修改后的几何仅仅执行最小化的更新,从最后一次修改处检查更新,建立显示列表,将最小化的数据量发送给显示设备,渲染管道,使所有设备上的渲染效果达到最优,输入设备的格式转换是依赖于接口的,图形信息通过优化的软件映射层进行传递,连续的分解技术,保证在不同的操作系统上的结果是相同的,HOOPS,设备接口(,HDI,),Autodesk,的,Heidi,技术就是从,HDI,派生的,HOOPS 3dGS,数据库基础,段,段操作:打开和关闭,HC_Open_Segment,HC_Close_Segment,段操作:示例,缺省段,写入场景的方法,段,包含图形的段,几何,属性:颜色,可见性,选择功能等等,子段:更低层的段,段的名称,段可以进行命名,可以像文件系统一样表示路径:绝对路径、相对路径、通配符,当前段(激活的段),你可以在任何一个时间来处理段,总存在一个激活的段,激活的短以先入先出的方式压入堆栈,段操作:打开和关闭,airplane,fuselage,wings,jet engine 1,jet engine 2,landing gear,打开段(,“,airplane,”,),打开段(,“,fuselage,”,),打开段(,“,landing gear,”,),关闭段(),关闭段(),打开段(,“,wings,”,),打开段(,“,jet engine1,”,),关闭段(),打开段(,“,jet engine2,”,),关闭段(),关闭段(),关闭段(),HC_Open_Segment,打开一个段,Void HC_Open_Segment(const char *segment),打开一个给定名称的段,如果不存在这个特定的段则创建新的段,建立一个段结构,将打开的段压入堆栈列表,先入先出,激活段(当前打开的段),HC_Close_Segment,关闭一个段,Void,HC_Close_Segment,(),关闭一个激活的段,从堆栈列表中获得激活的段,在打开一个段并激活它之前该段都是被激活的,段操作:示例,airplane,fuselage,wings,jet engine 1,jet engine 2,landing gear,HC_Open_Segment,(,“,airplane,”,),HC_Open_Segment,(,“,fuselage,”,),HC_Open_Segment,(,“,landing gear,”,),HC_Close_Segment,(),HC_Close_Segment,(),HC_Open_Segment,(,“,wings,”,),HC_Open_Segment,(,“,jet engine1,”,),HC_Close_Segment,(),HC_Open_Segment,(,“,jet engine2,”,),HC_Close_Segment,(),HC_Close_Segment,(),HC_Close_Segment,(),缺省段,根,顶层段,样式库,保存了通用的显示属性。类似于模板,包含库,拥有主要的形体数据,驱动器,在图形驱动器下生成可见的视图,保存各种各样的图形驱动器,OpenGL:,“,opengl,”,direct3D:,“,direct3d,”,Windows GDI:,“,msw,”,“,/,”,“,style library,”,“,driver,”,“,direct3d,”,“,msw,”,“,opengl,”,“,driver,”,场景输入的方法,在合适的驱动器下打开一个段,将在相机范围内的可见场景映射到特定的设备上,在驱动器段中的段是驱动器的实例,当打开段的时候将产生子段的实例,/driver/opengl/window0,/driver/opengl/window1,HOOPS 3dGS,几何和属性,几何基础,HC_Insert_Marker,HC_Insert_Line,属性基础,HC_Set_Color,HC_Set_Line_Weight,HC_Set_Line_Pattern,HC_Set_Visibility,终止应用程序的方法,HOOPS,库文件,练习,1,:,Win32,控制台应用程序,几何基础,处理形状数据,当插入到数据库后成为显示对象,主要的几何图元,Marker,Line,Polyline,Mesh,Shell,几何插入,几何插入的流程,打开一个段,调用,API,函数来插入,关闭一个段,对每一种几何图元都提供,API,函数,在插入和移动后都可以进行编辑,HC_Insert_Marker,插入一个标记,void HC_Insert_Marker(double x,double y,double z),X,Y,Z,坐标,最简单的几何图元,可以作为注释来使用,当放大和缩小的时候标记的大小是不变的,标记得大小是朝向相机的。它并不旋转,HC_Open_Segment(,“,XXX,”,);,HC_Insert_Marker(0,0,0);,HC_Close_Segment();,HC_Insert_Line,插入一条线,void HC_Insert_Line(double xa,double ya,double za,double xb,double yb,double zb),xa,ya,za:,起点坐标,xb,yb,zb:,终点坐标,HC_Open_Segment(,“,XXX,”,);,HC_Insert_Line(0,0,0,1,1,1);,HC_Close_Segment();,属性基础,属性通常是基于段来设置的,属性定义了在场景中怎样来显示几何体,每个段都有所有属性的值,如果物体有相同的属性,它们就应该由相同的段来进行管理,降低段结构的复杂程度,改进性能,属性的设置是从父段继承得来的,根段对所有的属性都有缺省值,HOOPS/3dGS Reference Manual-System Setup-Default Attributes,属性优先权,局部属性使用类型库的属性父段的属性,属性设置,属性设置流程,打开一个段,调用设置属性的,API,函数,关闭一个段,每一种属性都有对应的设置函数,不指定一个类型的几何但是指定一个类型的形体,marker,line,edge,face,HC_Set_Color,颜色设置,Void HC_Set_Color(const char *color_spec),颜色说明:字符串指定一个形体类型和颜色,“,edges,”,包含,polygons,,,shells,和,meshes,“,faces,”,包含,shells,和,meshes,“,markers,”,单独的点,HC_Open_Segment(,“,XXX,”,);,HC_Set_Color(,“,faces=red,line=white,”,);,HC_Close_Segment();,HC_Set_Line_Weight/,设置线宽,宽度:缺省线宽是场景的,0.1%,HC_Set_Line_Pattern/,设置线型,线型:字符串来定义线型:,“,实线,”,,,“,虚线,”,,,“,点划线,”,,,“,双点划线,”,HC_Set_Visibility/,设置对象的可见性和有效性,List,:字符串定义选项,edges,、,faces,、,markers,终止应用程序的方法,释放应用程序使用的数据,终止,HOOPS,HC_Exit_Program(),一些编译器和操作系统并不能完成该操作,释放,HOOPS,分配的内存,HC_Reset_System(),HC_Reset_System(),在,HC_Exit_Program(),中调用,HOOPS,库文件,HOOPS,库文件大小,通常比较小,显存,考虑是否使用,Z-,缓冲区,HOOPS,使用,16,位,Z-,缓冲区,窗口中的每一个象素都有,16,位内存,练习,1,:,Win32,控制台应用程序,在控制台程序中绘制飞机示例模型,参照,“,Win32,控制台应用程序,”,文档,飞机几何体和颜色设置,系统环境变量,HOOPS 3dGS API,HOOPS 3dGS API,命名规则,参数规则,段名称的字符串,段的键值,别名,HOOPS 3dGS API,命名规则,对每个编译器来说头部名称是不同的,HC_,是作为,C/C+,的头部名称来使用,HC_,HC_Set_Color,HC_Insert_Circle,HC_Define_Colormap,提供相关的函数,HC_KXXX(),返回一个段或几何图元的键值,HC_QXXX(),内部实现打开和关闭指定段,HC_QKXXX(),内部实现打开和关闭指定段,返回一个段的键值,参数规则,字符串可以包含特殊文字,支持下划线和空格,缺省情况下不区分大小写字母,编译器不能发现错误的字符串,在运行的时候,HOOPS,会显示错误消息,段名称字符串,段的名称中可以包含路径,绝对路径,“,/include library/model/airplane,”,相对路径,“,././fuselage/landing gear,”,通配符,“,*,”,其他,“,.,”,当前段,“,.,”,上一层段,“,”,进行递归,段的键值,段和几何图元都通过键值(,HC_KEY,)来管理,HC_KEY,的类型与长整数是相同的,依赖于系统的结构,通常是,32,位或者是,64,位,有时它比使用字符串名称更加方便,将,3dGS,的对象映射到应用程序对象,操作另一个结构,HC_KEY key;,Key = HC_KOpen_Segment(,“”,);,别名,路径表示成,“,?,”,+,字符串,类似于,C,语言中的,#define,缺省的段别名,“,?Picture,”,“,?Style Library,”,“,?Dirver,”,HC_Define_Alias(,“,?Modal,”,”,/include library/model_1,”,),数据输入输出,HOOPS,标准文件格式,读,HMF,文件,写,HMF,文件,实例化,包含,HC_Include_Segment,HC_Style_Segment,造型矩阵,练习,3,:数据输入输出和实例化,HOOPS,标准文件格式,HMF,:,HOOPS Meta File,文本格式,可以用于调试,HSF,:,HOOPS,流文件,被压缩的,流化处理,OpenHSF,动画数据,用户数据,HC_Read_Metafile,读,HMF,文件,void HC_Read_Metafile(const char* file, const char* segment, const char* options),HC_Open_Segment(,“,/include library/model,”,);,HC_Read_Metafile(,“,data/airplane.hmf,”,”,.,”,”,);,HC_Close_Segment();,HC_Write_Metafile,写,HMF,文件,void HC_Write_Metafile(const char* segment, const char* file, const char* options),HC_Open_Segment(,“,/include library/model0,”,);,HC_Read_Metafile(,“,.,”,”,data/airplane.hmf,”,”,);,HC_Close_Segment();,实例化,支持几何和属性的实例化,创建实例的段,包含几何和属性,这些段是通过场景图来实例化的,可以缩小场景图使之成为一个模块,“,airplane,”,“,fuselage,”,“,jet engine 1,”,“,jet engine 2,”,“,landing gear,”,“,wrings,”,“,include library,”,“,engine,”,“,blades,”,“,wheels,”,HC_Include_Segment,段包含,void HC_Include_Segment(const char *include),在当前的段中包含特定的段,包含的段是虚子段,段下的几何体是被包含的,类似于,UNIX,的,softlink,HC_Style_Segment,包含类型,void HC_Style_Segment(const char *style),类型:段的名称有包含的属性,特定段的包含属性,可以应用其他段的属性,当改变模式的时候是很有用的,造型矩阵基于段,每一个段有一个,44,矩阵,在段层上进行操作,对段中的所有几何都是有效的,两会总方法来操作矩阵,标准函数,HC_Rotate_Object,HC_Scale_Object,HC_Transform_Object,直接设置矩阵,HC_Append_Modelling_Metrix,级联矩阵相乘,HC_Set_Modelling_Metrix,重新设,移动段中指定对象的方法,将指定的对象移动到其他段中,修改一个段的矩阵,HC_Translate_Object,移动对象,void HC_Translate_Object(double x,double y,double z),x,y,z:,距离,移动段中的几何,练习,2,:输入输出和实例化,把练习,1,中的飞机实例化并完成文件输出,将飞机移动到,”,include library,”,在场景中包含,”,include library,”,实例化发动机和叶片,移动发动机和叶片,输出到一个,HMF,文件,利用,HOOPS3DPartViewer,检查段结构是否正确,%HOOPS%binnt_i386hoops3dpartviewer.exe,读入,HMF,文件夹:,File-Open,显示段的树结构:,Tools-Segment Browser,根段,模型段,视图段,练习,2,:输入输出和实例化,飞机的数据结构,“,airplane,”,“,fuselage,”,“,jet engine 1,”,“,jet engine 2,”,“,landing gear,”,“,wrings,”,“,engine,”,“,blades,”,“,wheels,”,/,Driver,IncludeLibrary,StyleLibrary,OpenGL,Window 1+0,Scene,Axis,WindowSpace,Model 0,Style 0,HOOPS MVO,3D,应用程序中经常使用到的函数,什么是,HOOPS MVO,HOOPS MVO,的段结构,HDB,HBaseModel,HBaseView,HBaseOperator,将,MVO,与,MFC,相连,练习,3,:,HOOPS MVO,应用程序,3D,应用程序中经常用到的函数,保存应用程序数据,绘制应用程序数据,管理应用程序数据,相机,选择,坐标,查询,驱动器设置,什么是,HOOPS MVO,模型显示操作,模型:保存管理应用程序数据,显示:绘制应用程序数据,操作:操作应用程序数据,相对应的,3,个类,HBaseModel,:处理在包含库下的段,HBaseView,:处理在驱动段下的段和实例,HBaseOperator,:处理图形用户界面,/,事件循环,相机操作,几何对象操作,选择,HOOPS MVO,段结构,Window 0+0,Scene,Axis,WindowSpace,Window 1+0,Scene,Axis,WindowSpace,Window 1+1,Scene,Axis,WindowSpace,Model 1,Model 0,OpenGL,Driver,IncludeLibrary,StyleLibrary,/,HBaseView,HBaseView,HBaseView,HBaseModel,HBaseModel,视,文档,HDB,程序启动时就被创建,创建和删除对象,是从,CWinApp,派生出来的,定义应用程序使用的全局对象,保存驱动器的数目,启动和终止,HOOPS,HBaseModel,对,3dGS,包含库的一个封装,适合于处理模型数据,Type,Driver,IncludeLibrary,StyleLibrary,/,Window 1+1,Scene,Axis,WindowSpace,Model 0,HBaseView,HBaseModel,HBaseView,封装了,HOOPS,的驱动器,例子:在,/driver/opengl,下的段,与其他的,MVO,类关联,HSelectionSet,HBaseOperator,启动第一个场景图,包含模型段,Instamce,Scene,Axis,WindowSpace,CuttingPlaneGeometry,CuttingPlane,Bbxgeometry,llights,construction,HBaseOperator,接受图形用户界面的事件,HEventInfo,HBaseView,有一个指向,HBaseOperator,的指针,对于时间基本方法的定义,派生类执行所需的操作,virtual int OnLButtonDown(HEventInfo ,virtual int OnLButtonUp(HEventInfo ,virtual int OnLButtonDblClk(HEventInfo ,virtual int OnLButtonDownAndMove(HEventInfo ,派生类,HOpCameraPan,HOpCameraOrbit,HOpCameraZoom,HOpCameraZoomBox,HOpCameraWalk,HOpObjectTranslate,HOpSelect,连接,MVO,与,MFC,连接,MVO,与应用程序类,连接,3dGS,的窗口,相连操作系统时间循环与,MVO,的事件循环,支持所需的系统服务,MVO,与应用程序派生类的连接,App,类,加入一个,HDB,对象指针,Doc,类,加入一个,HBaseModel,对象指针,View,类,加入一个,HBaseView,对象指针,CDocument,CView,CWinApp,MFC,CHoopsMvoDoc,CHoopsMvoView,CHoopsMvoApp,Application,HBaseModel,HBaseView,HDB,MVO,3dGS,与显示窗口的连接,连接,3dGS,与,HBaseView,显示窗口,将窗口,ID,号传给,HBaseView,的构造函数,m_pHBaseView = new HBaseView(,GetDocument()-m_pHBaseModel,0,“,opengl,”,0,m_hWnd,NULL);,事件循环与,MVO,循环的连接,图形用户界面对象是通过派生来实现的,接收时间并且映射到相应的,HBaseOperator,将输入信息映射到,HEventInfo,一些事件的映射是一对多的,OnLButtonDown,OnLButtonUp,OnMouseMove,OnLButtonDown,OnLButtonUp,OnMouseMove,OnLButtonDblClk,CView,HBaseView:m_pOperator,练习,4,:,HOOPS MVO,应用程序,连接到,MVO,并绘制飞机示例模型,参考文档,“,HOOPS MVO,应用程序向导,”,利用,MFC,的,AppWizard,来生成一个应用程序,将,MFC,连接到,HOOPS MVO,在一个命令上增加一个绘制飞机的函数,菜单,Test-Draw,在一个命令上增加一个鼠标旋转的函数,菜单,Test-Orbit,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!