一、CGAL是什么?

        CGAL 是一个开源软件项目,它以 C++ 库的形式提供对高效可靠的几何算法的轻松访问。 CGAL用于需要几何计算的各个领域,如地理信息系统、计算机辅助设计、 分子生物学、医学成像、计算机图形学和机器人技术。

        该库提供数据结构和算法,如三角剖分Voronoi 图、多边形和面体的布尔运算点集处理、曲线排列曲面和体积网格生成几何处理alpha 形状、凸包算法形状重建AABB 和 KD 树... 访问 CGAL 包概述,探索特性和功能的完整列表。

        来源:The Computational Geometry Algorithms Library (cgal.org)

二、Boost C++ 是什么?

       Boost Property Map Library主要由概念形式的接口规范组成。例如Boost Property Map概念定义了一个用于将关键对象映射到相应值对象的通用接口,从而隐藏了算法实现映射的细节。实现满足属性映射接口的类型由算法客户端提供。所以,CGAL高度依赖Boost。

        Boost Property Map Library还包含一些适配器,用于转换实现映射操作(如内置数组(指针)、迭代器和std::map)的常用数据结构,以实现属性映射接口。自由函数 get 和 put 允许通过属性映射获取和放置信息。数据本身可以存储在元素中,也可以存储在外部数据结构中,或者可以动态计算。这是特定属性映射的“实现细节”。

        对应的BGL 的算法在各种图形概念的模型上运行。特征类使算法能够确定顶点和边的类型(类似于迭代器)。例如,对图形进行操作的自由函数使算法能够获取边的源顶点或入射到顶点的所有边。这些算法使用属性映射将信息与顶点和边相关联。这些算法使访问者能够注册稍后在算法执行期间调用的回调。最后,图算法使用命名参数机制,该机制允许以任意顺序传递参数。

1、图像概念
        BGL 引入了几个图形概念,这些概念具有不同的特征和要求集。例如,遍历图形中的所有顶点或所有边,获取顶点的传出或传入边缘,将顶点和边插入到图形中,以及从图形中删除顶点和边缘。包含:
boost::graph_traitsstd::iterator_traits

2、图像训练集类
        在图形模型上运行的算法借助特征类 boost::graph_traits 确定类型。这些类型是 ,类似于 CGAL 数据结构中的顶点句柄,或者 ,类似于半边数据结构中的半边句柄或二维三角剖分中的 Edge 类型。还有迭代器,比如 ,类似于 CGAL 数据结构中的顶点迭代器,以及类似于边缘循环器的 ,;它能够遍历入射到顶点的边缘。迭代器是相似的,而不是等效的,因为它们的值类型是 ,而在 CGAL 句柄中,迭代器和循环器都具有相同的值类型,即顶点或边类型。包含:
vertex_descriptoredge_descriptorvertex_iteratorout_edge_iteratorvertex_descriptor

给定一个图类型,描述符和迭代器的定义如下:

boost::graph_traits<Graph>::vertex_descriptor vd;

boost::graph_traits<Graph>::edge_iterator ei;

来源:CGAL 5.6 - CGAL and the Boost Graph Library: User Manual

三、Cmake 有什么用?

        CMake 具备多个目标生成、跨平台开发、高度自定义等功能。以下介绍只涉及CMake一小部分功能。

1、单一来源在多个平台上构建
        
CMake 允许开发人员描述如何使用一组输入文件构建简单和非常复杂的软件系统。这可用于在多个平台上构建软件,从 Android 到 iOS 再到高性能计算系统。


2、准确的依赖关系和最少的重建
        CMake 具有准确的依赖项,并且只允许对已更改的代码进行最少的重新生成。它还支持 Fortran 和 C++ 模块。


3、源代码外生成
        CMake 允许源代码外构建,并能够为每个源代码树提供多个构建树。


4、以目标为中心的方法
        现代 CMake 允许将构建指定为一组目标(可执行文件、库、自定义命令)。每个目标都定义它直接依赖的其他目标。然后,CMake 按正确的顺序执行生成,并包含可传递链接目标。


5、使用缓存进行系统自省,允许捕获构建环境
每个 CMake 生成树都包含一个缓存文件,该文件包含作为该生成的一部分设置的变量。这包括系统自检找到的所有内容、已安装软件的路径以及用于构建的标志。Cmake 包含多个 GUI,允许编辑此缓存文件。


6、多个目标构建系统
CMake 支持多个目标生成系统,包括 Visual Studio、Xcode、ninja、make 和 VSCode。它允许项目充分利用其最重要的资源,即开发人员,充分发挥其潜力。由于 CMake 支持许多流行的 C++ IDE 系统以及命令行构建工具,因此开发人员能够选择他们最高效的构建工具。


7、完整的跨平台打包、安装、测试系统


8、自定义命令、配置头文件、调试器集成

 来源:CMake: The Standard Build System

四、VS的C++开发平台组件

        Visual Studio IDE 是一个创意启动板,可用于编辑、调试和生成代码,然后发布应用。除了大多数 IDE 都提供的标准编辑器和调试器之外,Visual Studio 还包括编译器、代码补全工具、图形设计器以及许多其他功能,以增强软件开发过程。

五、Qt creator

Qt Creator是跨平台的集成开发环境(IDE),旨在为开发者带来最好的体验。Qt Creator 可在 Windows,Linux 和 macOS 桌面操作系统上运行,并允许开发者在桌面、移动和嵌入式平台上创建软件。以下引用常用的小部分功能介绍:

1、复杂的代码编辑器
您可以在Qt Creator高级代码编辑器上使用C ++、QML、JavaScript、Python和其他语言编写软件。它具备代码补全、语法突出显示,重构等功能,内置文档随手可得。
 

2、项目和构建管理
无论导入现有项目,或是从头开始创建一个项目,Qt Creator都能生成所有必要文件。 包括支持Cmake和用qmake构建工具进行交叉编译。
 

3、多种系统选择
在桌面、移动和嵌入式操作系统上构建并运行您的软件。构建设置使您可以轻松地在目标之间切换。

来源:嵌入式软件开发工具和跨平台 IDE | Qt Creator

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐