Nef多面体中的Uncertain_conversion_exception

时间:2015-10-09 10:42:16

标签: cgal

我使用Nef Polyhedra进行一些3D布尔操作。我首先将一堆polyhedron_3网格转换为Nef_polyhedron_3网格,然后执行布尔操作。但是,几乎任何对Nef多面体的操作都会导致一堆Uncertain_conversion_exception。我尝试使用CGAL_PROFILE配置文件运行CGAL。这告诉我,我在两种不同的类型上得到了这个例外。这些是

GCAL::Uncertain<enum CGAL::Sign>
CGAL::Uncertain<bool>

特别是第二次被抛出很多。当将网格转换为Nef多面体时,它们都会抛出,在布尔运算期间它们自动抛出。抛出异常的调用是在Filtered_predicate中进行的。这里处理异常并且布尔操作返回预期结果。但是,异常似乎会使操作变得相当缓慢。

我在使用visual studio 2015的Windows上使用CGAL 4.7体验了这一点。我为预处理器定义了以下符号

WIN32;
_WINDOWS;
_CRT_SECURE_NO_DEPRECATE;
_SCL_SECURE_NO_DEPRECATE;
_CRT_SECURE_NO_WARNINGS;
_SCL_SECURE_NO_WARNINGS;
_DEBUG;CGAL_USE_MPFR;
CGAL_USE_GMP;
BOOST_ALL_DYN_LINK;
CMAKE_INTDIR="Debug";
CGAL_EXPORTS;

CGAL使用以下标志构建:/GR/EHscfp:strictfp:except-/wd4503/bigobj

此外,包含CGAL的项目使用以下标志构建:/GS /Zc:wchar_t /Zc:inline /fp:precise /Zc:forScope /clr /MDd /EHa

我遗漏了一些像包含标志似乎不相关的标志。

这是预期的行为还是我能做些什么来避免它?

0 个答案:

没有答案