第一章 Vega简介 1
1.1 Vega的基本概念 1
1.1.1 什么是Vega 1
1.1.2 Vega的API函数和库 1
1.1.3 什么是Lyn X 2
1.2 场景图形管理 2
1.3 产品模块 3
1.4 本书特点 3
1.4.1 如何建立一个应用程序 3
1.4.2 代码 4
1.4.3 参数和属性值 4
1.5 Unix特点 4
第二章 应用程序接口 6
2.1 Vega类 6
2.2 API结构 7
2.3 Vega的类管理和类删除方法 9
2.4 vgBase 10
2.5 vgCommon 10
2.5.1 vgName 10
2.5.2 vgGetNameLen 10
2.5.3 vgGetName 10
2.5.4 vgGetType 11
2.5.5 vgCopy 11
2.5.6 vgDelete 12
2.5.7 vgProp 12
2.5.8 vgGetProp 12
2.5.9 vgAttrList 12
2.5.10 vgUpdate 13
2.5.11 vgUserdata 13
2.5.12 vgGetUserData 13
2.5.13 vgAddFunc 13
2.5.14 vgDelFunc 13
2.5.15 vgSnapshot 13
2.5.16 vgDetach/ vgReattach 14
2.5.17 vgAddClassFunc 14
2.5.18 vgDelClassFunc 14
2.5.19 vgPrint 14
2.5.20 vgWriteADF 15
2.5.21 vgAddClass 15
2.5.22 vgGetClass 15
2.5.23 vgGetNumclass 15
2.5.24 vgRemClass 15
2.5.25 vgCommon函数概述 15
2.6 vgCPos 16
2.6.1 vgPos 16
2.6.2 vgGetPos 16
2.6.3 vgGetWCSPos 17
2.6.4 vgCPos参数计算 17
2.6.5 vgGetPosCalcVec 18
2.6.6 vgGetPosCalcMat 18
2.6.7 vgGetPosCalc 19
2.6.8 vgCPos函数概述 19
2.7 回调函数 19
2.7.1 vgCommon 19
2.7.2 类回调 20
2.8 用户定义的类 23
第三章 系统、窗口、通道和图形状态 28
3.1 建立一个应用程序 28
3.2 Vega应用程序的主循环 28
3.3 系统属性 29
3.3.1 错误处理 29
3.3.2 帧管理 30
3.3.3 多线程控制 30
3.3.4 系统回调 32
3.3.5 退出系统 33
3.3.6 时间 33
3.3.7 模块的可用性 33
3.3.8 事件管理 34
3.4 多窗口系统 36
3.4.1 窗口外观 36
3.4.2 窗口操作和位面 36
3.4.3 非控制台应用程序下的Vega窗口 42
3.4.4 基于WinMain应用程序中的Vega窗口 42
3.4.5 基于MFC的Vega窗口应用程序 47
3.4.6 窗口线程控制 52
3.4.7 键盘和鼠标的输入输出 52
3.4.8 帧缓冲区的因素 53
3.5 通道 54
3.5.1 通道位置 54
3.5.2 通道投影视图 55
3.5.3 通道属性 56
3.5.4 通道的回调函数 58
3.5.5 颜色表 58
3.5.6 状态表 59
3.5.7 转换 60
3.5.8 通道选择 61
3.5.9 通道选择线程 62
3.5.10 通道光点线程 62
3.5.11 动态视频分辨率 62
3.6 定制的统计表 63
3.6.1 vgStat函数的功能 63
3.6.2 vgStat函数的属性 64
3.7 图形状态 67
3.7.1 图形状态的控制 67
3.7.2 细节等级(LOD)的淡入淡出控制 68
3.8 回调函数小结 69
3.8.1 vgChannel 69
3.8.2 vgSystem 70
第四章 观察者 72
4.1 属性 72
4.1.1 状态 72
4.1.2 通道 72
4.1.3 位置 72
4.1.4 静态 73
4.1.5 动态 73
4.1.6 限定 73
4.1.7 限定:跟随 73
4.1.8 限定:旋转 74
4.1.9 限定:固定值 74
4.1.10 导航器 74
4.1.11 HMD输入 75
4.1.12 场景 75
4.1.13 环境 75
4.1.14 图形状态 75
4.1.15 相交矢量 75
4.1.16 查询 76
4.1.17 体 76
4.1.18 装载管理 77
4.1.19 立体效果 77
4.2 回调函数 78
4.3 指南 79
第五章 数据库 84
5.1 数据集 84
5.1.1 纹理参数 87
5.1.2 声音波形 87
5.1.3 数据集回调 87
5.2 纹理 89
5.2.1 可分页纹理 90
5.2.2 包含纹理的可分页几何体 90
5.2.3 用户安装的装载器 91
5.2.4 纹理回调 92
5.3 虚拟纹理 92
5.3.1 Vega剪贴对象物模块 94
5.3.2 应用程序接口 95
5.3.3 初始化Vega剪贴对象物模块 95
5.3.4 创建剪贴对象物 96
5.3.5 剪贴对象物属性 96
5.3.6 LADBM支持 106
5.3.7 虚拟数据库的问题 107
5.3.8 样例代码和应用程序定义文件 107
5.3.9 后处理问题 129
5.4 对象物 130
5.5 部件 139
5.6 场景 144
5.7 颜色表 145
5.8 数据库管理 148
5.8.1 Dbm属性 148
5.8.2 Dbm形状 149
5.8.3 Dbm坐标系变换 151
5.8.4 Dbm形状与计算的依赖关系 152
5.8.5 程序实例 154
5.9 显示列表 164
5.9.1 编辑显示列表 164
5.9.2 通道附件 169
5.9.3 体显示列表 170
5.9.4 程序样例 170
5.10 回调函数 171
5.10.1 vgObject 171
5.10.2 vgPart 173
5.10.3 vgScene 173
5.11 状态表 173
第六章 场景运动体 179
6.1 场景运动体属性 179
6.2 把类事件附着到场景运动体中 180
6.3 场景运动体定位规则 181
6.3.1 附着运动模型的场景运动体 182
6.3.2 附着导航器的场景运动体 182
6.3.3 场景运动体的参考坐标系 182
6.4 对象物附着和对象物偏移 184
6.5 场景运动体的体 185
6.6 附着场景运动体的相交矢量 185
6.7 回调函数 186
第七章 环境、环境效果、雾模型和光照 188
7.1 环境 188
7.1.1 环境属性 189
7.1.2 环境能见度 190
7.1.3 环境颜色控制 190
7.1.4 加入类事件 191
7.1.5 样例 191
7.2 雾模型 193
7.2.1 雾模型的类 194
7.2.2 雾模型颜色和属性 194
7.2.3 样条雾表的配置 196
7.3 环境效果 196
7.3.1 环境效果的颜色和属性 196
7.3.2 云 197
7.3.3 地表雾 202
7.3.4 风暴 203
7.3.5 星际模型 205
7.3.6 日月的着色 208
7.3.7 背景画面 209
7.4 光源 211
7.4.1 光源类型 212
7.4.2 光照模型 213
7.4.3 光源属性 213
7.4.4 光源衰减 214
7.4.5 光源颜色 214
7.4.6 放置光源 214
第八章 体和相交矢量 217
8.1 体 217
8.2 相交矢量 219
8.2.1 Z、HAT、Tripod、LOS、Bump、XYZPR、Volume的方法 220
8.2.2 VGIS-Z方法 220
8.2.3 VGIS-HAT方法 224
8.2.4 VGIS-ZPR方法 227
8.2.5 VGIS-TRIPOD方法 230
8.2.6 VGIS-LOS方法 233
8.2.7 VGIS-BUMP方法 239
8.2.8 VGIS-XYZPR方法 243
8.2.9 VGIS-VOLUME方法 248
8.3 高级篇 250
8.3.1 查找并取回额外的相交矢量结果 250
8.3.2 坐标系 254
8.3.3 相交矢量处理 254
8.3.4 修改pfSegSet模式 254
8.4 回调函数 255
第九章 运动模型、路径和导航器 256
9.1 背景 256
9.2 使用输入设备作为运动模型 257
9.3 执行用户定义的运动模型 257
9.3.1 复位事件 264
9.3.2 更新事件 264
9.4 运动模型的处理 264
9.5 路径 268
9.5.1 建立和询问路径 268
9.5.2 文件和路径的辅助函数 270
9.6 导航器 271
9.6.1 vgNavigator(基本类)功能 272
9.6.2 标记和标记表 272
9.6.3 vgSplineNavigator功能 273
9.6.4 用vgSplineNavigator函数标记事件和数据 274
9.6.5 属性 275
9.7 选取 281
9.7.1 属性 281
9.7.2 vgPicker API 285
第十章 输入设备 288
10.1 背景 288
10.2 使用vgIDev类 288
10.3 输入设备的属性 289
10.4 从一个设备中读取数据 291
10.5 高级篇 292
第十一章 扩展Vega 293
11.1 用户自定义类 293
11.2 建立用户自己的Vega产品模块 294
11.2.1 模块结构 294
11.2.2 回调 295
11.2.3 增中用户数据并定义到ADF中 298
11.2.4 模块定义 304
11.2.5 LynX GUI配置文件 305
11.3 创建LynX插件 319
11.4 从ADF中读取用户数据 323
11.5 指南 323
11.5.1 关键字配置更改 323
11.5.2 GUI配置更改 326
11.5.3 LynX插件 328
11.5.4 模块 328
第十二章 字体 338
12.1 矢量字体 338
12.1.1 字体大小 338
12.1.2 放置字符 339
12.1.3 着色字符串 339
12.2 位图字体 339
12.2.1 装载字体 339
12.2.2 选择字体 340
12.2.3 绘制字体 341
第十三章 分布式Vega 342
13.1 介绍 342
13.2 概述 342
13.2.1 硬件需求 343
13.2.2 系统结构 343
13.2.3 系统初始化 344
13.2.4 自动开启从设备 344
13.3 建立应用程序 345
13.4 应用程序接口 346
13.4.1 初始化 346
13.4.2 数据交换 347
13.4.3 属性 348
13.5 Lyn X面板 348
13.6 例子 350
13.6.1 应用程序 350
13.6.2 ADF文件 351
13.7 解决方案 352
13.8 注意 353
13.9 已知的问题 354
第十四章 回调函数表 355