前言:vtk提供的布尔运算接口vtkBooleanOperationFilter或是其他的接口,都存在运行不稳定且速度慢的情况;本博文主要使用CGAL库对布尔运算进行优化,希望给各位小伙伴有所帮助!
CAGL开源库
介绍
CGAL 是一个软件项目,以C++库的形式提供对高效可靠几何算法的轻松访问。 CGAL用于需要几何计算的各个领域,例如地理信息系统,计算机辅助设计, 分子生物学、医学成像、计算机图形学和机器人技术。
该库提供数据结构和算法,如三角测量、Voronoi 图、多边形和多面体的布尔运算、点集处理、曲线排列、曲面和体积网格生成、几何处理、alpha 形状、凸包算法、形状重建、AABB 和 KD 树......
要了解有关 CGAL 的更多信息,请浏览软件包概述。
下载&编译Example
采用源码编译的方式 [CGAL] CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-CSDN博客
VS&QT运行Triangulation_2样例
遇到问题
1. 错误:节数超过对象文件格式限制:请使用bigobj进行编译
运行环境 | 解决方案 |
VS&QT | 打开该项目的 属性页 对话框单击 C/C++ 项。单击 命令行 属性页。在 其他选项 框中键入编译器选项,添加 /bigobj 即可。 |
QT | QMAKE_CXXFLAGS += /bigobj |
2. 错误 :error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ) 已经在 msvcprtd.lib(MSVCP120D.dll) 中定义
解决方案:去除Boost的库
3. 错误:Impossible to draw, CGAL_USE_BASIC_VIEWER is not defined.
解决方案:待解决
环境配置
附加包含目录:$(SolutionDir)ThirdRepository\CGAL-5.5.2\auxiliary\gmp\include;$(SolutionDir)ThirdRepository\CGAL-5.5.2\include;$(SolutionDir)ThirdRepository\CGAL-5.5.2\boost_1_71_0;
附加库路径:$(SolutionDir)ThirdRepository\CGAL-5.5.2\auxiliary\gmp\lib;
添加库:libgmp-10.lib;libmpfr-4.lib;
VS&QT运行Triangulation_2样例
参考
VTK Learning Thirty - vtkPolyData to CGAL Surface_mesh_vtkpolygon_wblong_cs的博客-CSDN博客
参考文档
VTK布尔运算存在的问题:
VTK-vtkIntersectionPolyDataFilter_雪易的博客-CSDN博客
VTK - Boolean布尔操作_vtkimplicitboolean_雪易的博客-CSDN博客
布尔运算开源库比较:
3D网格布尔运算开源库_石花山的博客-CSDN博客
CGAL开源库下载:
Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库_visual studio vcpkg_Achilles的博客-CSDN博客
[CGAL] CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-CSDN博客