Advertisement

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

阅读量:

本文介绍了CGAL(Computational Geometry Algorithms Library)库,该库提供高效可靠的几何算法,支持多种领域如地理信息系统、计算机辅助设计等。文章详细讲解了如何通过源码编译CGAL,并提供了VS&QT环境下运行Triangulation_2样例时遇到的常见问题及解决方案,包括错误提示和错误信息的处理方法。此外,文章还讨论了VTK布尔运算存在的问题,并比较了不同开源库的优劣,最后提供了CGAL开源库的下载和集成方法。

分享医械研发知识,关注医械发展新动态,一起成长!

VTK技术爱好者 QQ:870202403 公众号:青予医械研发


前言:VTK所采用的布尔运算接口,如vtkBooleanOperationFilter等,普遍存在着运行效率低下和稳定性较差的问题;本篇文章主要针对布尔运算进行优化处理,并旨在帮助各位读者提升相关操作的效率和稳定性。

CAGL开源库

介绍

CGAL 是一个软件库,采用C++语言开发,旨在提供高效可靠的几何算法功能。该库广泛应用于需要几何计算的各个领域,包括地理信息系统平台、计算机辅助设计软件、生物分子研究领域、医学成像技术、计算机图形学领域以及机器人技术领域。

该库提供了一系列数据结构和算法,例如[三角测量](https://doc.cgal.org/latest/Manual/packages.html#PartTriangulationsAndDelaunayTriangulations "三角测量"),包括多边形的布尔运算和多面体的布尔运算。此外,该库还支持点集处理、曲线的排列、曲面和体网格的生成、几何处理、alpha形状、凸包算法、形状的重建、AABB树和KD树等核心功能。这些功能均通过CGAL文档提供详细的技术说明和实现示例。

请了解CGAL的相关详细信息,请参考软件包概述

下载&编译Example

通过源代码编译的方式 [[CGAL] CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-博客]( "CGAL CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-博客")

VS&QT运行Triangulation_2样例

遇到问题

1. 错误: 节数超过对象文件格式限制:请使用bigobj进行编译

运行环境 解决方案

在属性页对话框中打开项目设置,选择C/C++属性,进入命令行属性设置,在其他选项中输入编译器选项,添加 /bigobj 即可。
VS&QT
QMAKE_CXXFLAGS += /bigobj

错误提示:LNK2005,私有静态类中的函数"GetGlobalLocale"(函数名)已经在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 version 1.71.0;

附加库路径: $(SolutionDir)ThirdRepository\CGAL-5.5.2\auxiliary\gmp\lib;

添加库: libgmp-10.lib;libmpfr-4.lib;

VS&QT运行Triangulation_2样例

参考

学习VTK的第30课,深入探索第30课内容,全面解析VTK的核心技术。从VTK的多边形数据到CGAL的表面网格,掌握数据转换的关键步骤。

参考文档

VTK布尔运算存在的问题:

VTK-vtkIntersectionPolyDataFilter_雪易的博客-博客

该方法通过VTK的布尔操作实现对几何体的合并与差集运算。在实际应用中,用户可以通过以下步骤轻松实现这一功能:首先,导入需要操作的几何体文件;其次,选择合适的布尔操作类型;最后,执行操作并保存结果。该方法特别适用于需要精确控制几何体关系的场景,能够有效避免传统方法中可能出现的精度问题。通过该方法,用户可以在较短时间内完成复杂的几何体操作,显著提升了工作效率。

布尔运算开源库比较:

三维网格布尔运算开源项目_石花山的博客-博客

请访问该库的下载页面:开源 CGAL库。

Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库

[[CGAL] CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-博客]( "CGAL CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal gmp_飞翔的霸王龙的博客-博客")

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

全部评论 (0)

还没有任何评论哟~