cesium中文网,cesium怎么读

  cesium中文网,cesium怎么读

  简介

  这是一个基于c开发的3d地理空间库

  3dtiles运行时轻量级glTF序列化和反序列化高精度3D地理空间数学类型和函数的流式传输,包括对全球范围WGS84椭球体的支持,目前主要用于加载基于unreal引擎的3D Tiles数据。网址:

  https://github.com/CesiumGS/cesium-native

  它的代码管理基于cmake。本文主要研究cmake的代码管理模式。CMake是一个跨平台的安装编译工具,可以用简单的语句描述所有平台的安装(编译过程)。

  Cmake结构

  Cmake由CMakeLists.txt描述,整个项目有三个核心cmakelists.txt,分别是

  1放在主目录的铯本地文件夹中。

  每个业务功能文件夹中2个

  在3外部文件夹中

  主目录是整个项目的入口,负责整体管理。

  每个业务功能文件夹主要负责其具体模块的编译设置。

  extern文件夹主要负责管理外部库的编译。请参考下图:

  主目录目录列表

  这里定义了通用函数,以方便后续使用,以及工程编译的控制。以下是关键点:

  1设置debug编译的库添加后缀d。

  set(铯调试后缀 d )

  set(铯释放后缀)

  set(CMAKE _ DEBUG _ POSTFIX $ {铯_DEBUG_POSTFIX})

  set(CMAKE _ RELEASE _ POSTFIX $ {铯_RELEASE_POSTFIX})

  set(CMAKE _ MINSIZEREL _ POSTFIX $ {铯_RELEASE_POSTFIX})

  set(cmake _ relwithdebinfo _ postfix $ {铯_ release _ postfix}) 2定义了文件搜索函数。

  分配起来很方便。h和。cpp文件到变量。还支持正则表达式查找。

  函数(铯_ GLOB _ FILESOUT _ VAR _ NAME REGEXES)的使用示例如下:给所有文件名分配后缀。src下的cpp添加到ADD_SOURCES变量中。

  ceum _ glob _ files(add _ sources src/*。CPP) 3重新定义依赖关系

  定义外部库头文件和lib的依赖函数,可以自动将外部库的文件和库设置为需要使用的库。

  函数(target _ link _ libraries _ system target scope)的使用示例如下。glm和uriparser的文件夹和库自动设置为CesiumUtility库,参考外部库非常方便。

  目标_链接_库_系统(

  cesium实用程序

  公众的

  全球语言监测机构

  uriparser

  )4定义了一个通用的编译器设置函数。

  设置统一的编译环境如C版本、编译级别等。

  函数(配置铯库目标名)5添加要编译的项目。

  通过add _子目录添加那些需要编译的项目。对于外部库,采用按需编译,所以增加了参数EXCLUDE_FROM_ALL。

  Add _子目录(extern exclude _ from _ all)业务目录列表

  在这里,找到一个业务模块进行研究。其他都差不多。挑选

  CesiumIonClient/CMakeLists.txt文件。

  按顺序研究:

  1定义库名

  Add _ library (cesiumclient) 2设置编译参数,主目录中定义的函数在这里调用。

  configure _ cecium _ library(cesium client)3获取要编译的文件列表,在这里调用主目录中定义的函数。

  铯原子团文件(铯离子客户端源SRC/*。CPP) 4设置目标属性,将头文件赋给PUBLIC_HEADER。

  set _ target _ properties(CesiumIonClient

  性能

  PUBLIC _ HEADER $ {铯离子客户端公共标题}

  )5设置要编译的源代码,设置之前获取的文件列表。

  目标来源(

  CesiumIonClient

  私人的

  $ {铯离子客户端来源}

  $ {铯离子客户端标题}

  公众的

  $ {铯离子客户端公共邮件头}

  )6设置头文件包含的路径。

  目标包含目录(

  CesiumIonClient

  系统公共

  $ { CMAKE _ CURRENT _ LIST _ DIR }/include

  )7设置依赖库。

  目标_链接_库(CesiumIonClient

  公众的

  CesiumAsync

  cesium实用程序

  私人的

  csprng

  modp_b64

  PicoSHA2

  )8设置依赖关系的库依赖包括头文件和主文件中定义的调用函数。

  目标_链接_库_系统

  私人的

  httplib:httplib

  )9安装头文件和编译好的库。

  安装(目标为CesiumIonClient

  库目标${CMAKE_INSTALL_LIBDIR}

  PUBLIC_HEADER目标$ { CMAKE _ INSTALL _ include dir }/CesiumIonClient

  )外部依赖CMakeLists

  在文件路径extern/CMakeLists.txt下。这里对外部库的引用分为3种情况。

  第一种通过添加_子目录直接引用,一共有12个库这么实现。

  添加_子目录(第二条)

  添加子目录(GSL)

  添加_子目录(KTX-软件

  添加子目录(uriparser)

  添加子目录(德拉科)

  添加子目录(glm GLM)

  添加_子目录(tinyxml2)

  添加_子目录(asyncplusplus)

  添加子目录(spdlog)

  添加_子目录(sqlite3)

  添加子目录(modp_b64)

  添加子目录(cpp-httplib)第二种,对于没有卡姆克文件的库,写一个库,这种类型有四种。

  添加库(S2几何)

  add _ library(c sprng c sprng/source/c sprng。CPP)

  添加库(PicoSHA2接口)

  添加库(earcut接口)第三种,只把库文件进行收集,在需要使用的地方去用,有2个库这么操作。

  设置(铯_原生_ STB _ INCLUDE _ DIR $ { CMAKE _ CURRENT _ LIST _ DIR }/STB

  内部缓存

  包括机顶盒(Set-Top-Box)库目录

  )集(铯_原生_快速_包含_目录

  $ { CMAKE _ CURRENT _ LIST _ DIR }/rapid JSON/include

  内部缓存包括拉皮德森目录

  )总结

  铯原生的的第一种组织结构基本上研究完了。这种处理组织方式可以很方便的扩展外部库的依赖以及内部库的增加,非常适合我们借鉴。

  写在最后

  欢迎关注公众号并加群交流

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: