首页 理论教育 地质信息系统之三维可视化

地质信息系统之三维可视化

时间:2022-02-01 理论教育 版权反馈
【摘要】:如图7-20所示,作为地质信息系统三维可视化软件平台,Quanty View3D框架由九个相对独立又相互联系的模块组成。可以利用Visual C++2010开发工具,基于Quanty View提供的二次开发包及其动态链接库,搭建专题应用软件,能够实现各专业的地学三维可视化系统。下面以32位的Debug版的专题动态库和EXE的创建及配置为例,介绍Quanty View3D的二次开发基本过程。至此,一个专题动态库已经创建完成了,下一步的工作就是基于Quanty View3D的SDK开发包针对地质专题需求开发所属的功能接口了。
二次开发_地学三维可视化

如图7-20所示,作为地质信息系统三维可视化软件平台,Quanty View3D框架由九个相对独立又相互联系的模块组成。

图7-18 地质空间分析

图7-19 支持网络的地质三维可视化平台

图7-20 Quanty View3D模块组成

(1)基本图形模块:是三维平台图形核心基础模块,实现基本图元以及图元组织和渲染等基本图形功能。

(2)科学计算模块:支持数据处理、空间分析、功能应用等基本的科学计算,主要是一些数学算法。它的数据结构以及开发尽量考虑跨平台、独立性。

(3)数据管理传输模块:利用点源数据库进行地质数据的存储、查询、调度等,C/S及B/S模式的数据传输。

(4)文件转换信息模块:实现地质3D数据文件的标准化,以及与其他通用的同类软件之间的数据交换处理。

(5)可视化显示模块:为地质建模、交互编辑、空间分析、专题应用提供一个三维可视化的环境,要求快速、逼真、多形式。

(6)交互编辑模块:封装三维可视化平台的常用编辑功能,要求方便、快捷、人性化。

(7)地质建模模块:负责地表、地质体、地质工程建筑等的模型构建。

(8)空间分析模块:封装地质空间的常规分析方法。

(9)专题应用模块:总结地质信息化工作的项目成果,发展基于平台的专题应用产品。如矿山、地质调查、城市建设、地下管线、油气盆地、水文地质、工程地质、灾害地质等专题。

可以利用Visual C++2010开发工具,基于Quanty View提供的二次开发包(SDK)及其动态链接库,搭建专题应用软件,能够实现各专业的地学三维可视化系统。

在整体架构上,Quanty View3D采用的是两线交叉模式,一方面从三维可视化环境角度分为“World-Project-Looker-Render”模式,另一方面从数据组织上分为“Project-Map-Layer-3d Object”模式。其中,CGV3d World类总管三维可视化环境;CGV3d Project类负责三维数据对象的组织,它采用的是“Project-Map-Layer-Object”模式,即一个工程(Project)下有多个图幅(Map),一个图幅包含有多个图层(Layer),一个图层包含有多个图形对象(3d Object),图形对象主要是点(CGV3d Point)、线(CGV3d Polyline)、面(CGV3d Polygon与CGV3d Surface)、体(CGV3d Polyhedron)等几种基本图元类,如图7-21所示。

图7-21 Quanty View3D模块构架

Quanty View3D的SDK包主要包括build、include、lib、libd四个文件夹,其中build文件夹主要是主框架或其他动态库的源码文件夹,include是Quanty View3D平台二次开发用到的头文件,用户自定义的动态库的头文件也可统一放到该文件夹,lib文件夹是32位Release版本的平台库,libd文件夹是32位Debug版本的平台库。

一般的二次开发主要是程序员根据应用专题开发动态库或者应用程序EXE,源码一般放在build文件夹中,导出库或者应用EXE一般放到lib或者libd中。下面以32位的Debug版的专题动态库和EXE的创建及配置为例,介绍Quanty View3D的二次开发基本过程。

1.专题动态库创建及配置

以MFC Extension Dll为例,创建一个专题动态库,如“GV3d Mine.dll”,其工程名称为GV3d Mine,放在build下的3DFrame或者ours文件夹下。再设置好动态库属性页的一些配置参数,以下是一个参数设置示例。①“字符集”设置为“使用多字节字符集”(图7-22)。②“输出路径”为“..\..\..\libd”(图7-22)。③“中间文件路径”设置为“..\..\..\mid\x86d\$(Project Name)\”(图7-22)。④“附加库目录”设置为“$(Out Dir)”(图7-23)。⑤“附加依赖项”设为“mpr.lib;glut32.lib;GV3d Modeling.lib;GV3d User.lib;GV3d Math.lib;GV3d Base.lib;GV3d Algorithms.lib;GV3d File IO.lib;GV3d Res.lib;GV3d Frame.lib;Geoat-tribute.lib;geoado.lib;Image.lib;jpeg.lib;zlib.lib;j2k.lib;png.lib;jasper.lib;jbig.lib;spz-ip.lib;tiff.lib;Math Lib.lib;Thirdly Library.lib;Algorithms Lib.lib;Gdi Plus.lib;geobase. lib;Map Projections.lib;Geo Obj Base.lib;Geo Struct.lib;Geo Geometry.lib;Geo Base UI.lib”(图7-24)。

在使用时,在头文件stdafx.h中或者实现文件的开头加上相应的包含文件即可,如图7-25所示。

至此,一个专题动态库已经创建完成了,下一步的工作就是基于Quanty View3D的SDK开发包针对地质专题需求开发所属的功能接口了。

图7-22 专题动态库属性配置(1)

图7-23 专题动态库属性配置(2)

2.专题EXE的创建及界面配置

以MFC应用程序MDI为例,创建一个专题EXE,如“Quanty Soft.exe”,其工程名称为Quanty Soft,放在build下的3DFrame或者ours文件夹下。再设置好应用程序属性页的一些配置参数,以下是一个参数设置示例。①“字符集”设置为“使用多字节字符集”(图7-26)。②“输出路径”为“..\..\..\libd”(图7-26)。③“中间文件路径”设置为“..\..\..\mid\x86d\$(Project Name)\”(图7-26)。④“附加库目录”设置为“$(Out Dir)”(图7-27)。⑤“附加依赖项”设为“mpr.lib;glut32.lib;GV3d Modeling.lib;GV3d User.lib;GV3d Math.lib;GV3d Base.lib;GV3d Algorithms.lib;GV3d File IO.lib;GV3d Res.lib;GV3d Frame.lib;Geoat-tribute.lib;geoado.lib;Image.lib;jpeg.lib;zlib.lib;j2k.lib;png.lib;jasper.lib;jbig.lib;spz-ip.lib;tiff.lib;Math Lib.lib;Thirdly Library.lib;Algorithms Lib.lib;Gdi Plus.lib;geobase.lib;Map-Projections.lib;Geo Obj Base.lib;Geo Struct.lib;Geo Geometry.lib;Geo Base UI.lib”(图7-28)。

图7-24 专题动态库属性配置(3)

图7-25 头文件的添加

图7-26 专题应用程序EXE属性配置(1)

图7-27 专题应用程序EXE属性配置(2)

在头文件stdafx.h中或者实现文件的开头加上相应的包含文件即可,如图7-29所示。

至此,一个专题应用程序EXE已经创建完成了,下一步的工作就是基于Quanty View3D的SDK包针对地质专题需求开发所属的功能了。

图7-28 专题应用程序EXE属性配置(3)

图7-29 专题应用程序头文件的添加

思考题

1.如何基于Quanty View SDK自己动手搭建一个专题软件框架,并能导入数据进行三维可视化展示?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈