包含图形的段
·几何
·属性:颜色,可见性,选择功能等等
·子段:更低层的段
段的名称
·段可以进行命名
·可以像文件系统一样表示路径:绝对路径、相对路径、通配符
当前段(激活的段)
·你可以在任何一个时间来处理段
·总存在一个激活的段
·激活的段以先入先出的方式压入堆栈

HC_Open_Segment(const char *segment)
HC_Close_Segment()
插入一条线
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();

颜色设置
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();

设置标记点符号
void HC_Set_Marker_Symbol(const char * symbol)

符号:字符串来定义符号点
“()”or“O”:封闭的圆(缺省)
“*”:星号
“+”:加号
“.”:点

HC_Open_Segment(“XXX”);
HC_Set_Marker_Symbol(“+”);
HC_Close_Segment();

设置标记的大小
void HC_Set_Marker_Size(double weight);

大小:缺省大小时场景的0.1%
HC_Open_Segment(“XXX”);
HC_Set_Marker_Size(2);
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()中调用

对每个编译器来说头部名称是不同的
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的对象映射到应用程序对象
操作另一个结构

每一个段有一个4×4矩阵
在段层上进行操作
对段中的所有几何都是有效的
两种方法来操作矩阵
标准函数
HC_Rotate_Object
(Moves the represented object about its X-, Y-, or Z-axis.)//旋转
Rotate_Object_Offaxis
(Moves the represented object about an arbitrary axis.)//任意轴旋转
HC_Scale_Object
(Enlarges or reduces objects within the user data space. Not to be confused with Zoom_Camera.)
(在用户数据空间中放大或缩小对象。 不要与Zoom_Camera混淆。)
HC_Transform_Object//(没找到这个方法,但文档上有写)
HC_Translate_Object//平移
直接设置矩阵
HC_Append_Modelling_Metrix级联-矩阵相乘
HC_Set_Modelling_Metrix重新设
移动段中指定对象的方法
将指定的对象移动到其他段中
修改一个段的矩阵

HOOPS MVO的段结构
HDB:
·程序启动时就被创建
·创建和删除对象
·是从CWinApp派生出来的
·定义应用程序使用的全局对象
·保存驱动器的数目
·启动和终止HOOPS
HBaseModel:处理在包含库下的段
HBaseView:处理在驱动段下的段和实例
HBaseOperator:处理图形用户界面/事件循环
·相机操作
·几何对象操作
·选择

Hoops随便记的的更多相关文章

  1. XNA Game Studio 4.0 Programming 随便读,随便记 &ldquo;Game Class&rdquo;

    XNA 中的 Game 类,是所有神奇事情发生的地方.几乎游戏中所有的事情都由它来操办. 它是项目中的王者,让我们深入窥探一番: 虚方法 Game 本身从众多其它地方继续了许多能力才能完成游戏中的事情 ...

  2. objective-c 随便记记

    1.tableview滚动到某一位置 [tableViewShow setContentOffset:CGPointMake(0, 0) animated:YES]; //解决tableView分割线 ...

  3. Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”——HTTP

    HTTP 我们将只聚焦在于与创建 Web APIs有关的部分. HTTP 是信息系统中的一个应用层协议,是Web的支柱. 其原先由 Berners-Lee, Roy Fielding 和 Henrik ...

  4. Designing Evolvable Web API with ASP.NET 随便读,随便记 &ldquo;The Internet,the World Wide Web,and HTTP&rdquo;

    1982年,诞生了 Internet; 1989年,诞生了World Wide Web . "World Wide Web"的构造为主要由 三部分构成: resources 资源 ...

  5. XNA Game Studio 4.0 Programming 随便读,随便记 &ldquo;Rendering Text&rdquo;

    在游戏中,通常要与玩家交流,比如分数,提示等.这就需要一种新的精灵, 它就叫SpritFont.下面先将其增加到项目中: 项目 -----> 添加新项-----> Sprite Font ...

  6. XNA Game Studio4.0 Programming 随便读,随便记。

    一.精灵和2D图形 1.什么是2D ? 2D可以理解为 two-Dimentionanl  , 2-dimentional 的缩写. 意就是两维的,比如 数学中的 直角坐标系 所能描述的就是一个2D的 ...

  7. html.css随便记

    css 绝对定位:一个元素绝对定位时,浏览器首先将它从流中完全删除,然后浏览器再把这个元素放在属性指定的位置上,对其他元素没有影响   绝对定位要相对于最近的父级元素进行定位 position: ab ...

  8. python之路第二天 随便记记 今天主要很郁闷

    为何要有操作系统 为了让程序员更轻松的完成命令电脑工作而存在的,控制硬件,服务于软件. 操作系统的位置 操作系统位于软件和硬件之间.操作系统由内核(运行于内核态,控制硬件)和系统调用(运行于用户态,为 ...

  9. 梦想还是要有的-纪念正式成为csdn博客专家暨年中总结

    csdn博客:http://blog.csdn.net/tuzongxun 我的csdn历程(坚持总会有收获):   一年零三个月之前,2015年3月3日,我在csdn写下第一篇技术博客,只是记录了一 ...

随机推荐

  1. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  2. Ubuntu如何更新源

    Ubuntu的源其实就是更新各种软件包需要用到镜像网站, 当大家在虚拟机上安装Linux镜像的时候肯定会遇到各种Linux软件没有安装,当你用apt-get安装的时候它会提示无效的网址,这个时候你就需 ...

  3. Hive表数据导出

    方式一: hadoop命令导出 hadoop fs -get hdfs://hadoop000:8020/data/page_views2 pv2  方式二:通过insert...directory导 ...

  4. HAOI2011 problem b

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 1047  Solved: 434[Submit][ ...

  5. C#选择文件、选择文件夹、打开文件(或者文件夹)

    1.选择文件用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以 ...

  6. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——网络节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 网络节点: 1.安装前更新系统 安装好ubuntu 12.04 Server 64bits后,进 ...

  7. IOS编程教程(八):在你的应用程序添加启动画面

    IOS编程教程(八):在你的应用程序添加启动画面   虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中.不需要任何编码.你只需要做的是设置一些配置. 什么是闪屏 对于那些 ...

  8. 【Linux操作系统分析】设备驱动处理流程

    1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...

  9. freemarker写select组件(五)

    freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...

  10. 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

    视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...