布尔运算-基于CGAL的布尔运算

前言: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博客

猜你喜欢

转载自blog.csdn.net/qq_40041064/article/details/131433737