我刚刚开始使用CGAL计算沿着一条折线的minkowski和-基本上是一个‘滑动’运算。这里有一个很好的例子:
不幸的是,我遇到了麻烦,因为一些点的折线是相等的。例如,对于闭环:
Point_3 pl[6] =
{Point_3(-100,0,0),
Point_3(40,-70,0),
Point_3(40,50,40),
Point_3(-90,-60,60),
Point_3(0, 0, -100),
Point_3(-100,0,0)
};
其结果是
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: N.is_valid(0,0)
File: /usr/include/CGAL/convex_decomposition_3.h
Line: 141
[1] 30341 done cat cube.nef3 |
30342 abort (core dumped) ./glide
回溯过程如下:
0 raise /usr/lib/libc.so.6 0x7ffff693a369
1 abort /usr/lib/libc.so.6 0x7ffff693b768
2 __gnu_cxx::__verbose_terminate_handler() /usr/lib/libstdc++.so.6 0x7ffff7228635
3 ?? /usr/lib/libstdc++.so.6 0x7ffff72267a6
4 std::terminate() /usr/lib/libstdc++.so.6 0x7ffff72267d3
5 __cxa_throw /usr/lib/libstdc++.so.6 0x7ffff72269fe
6 CGAL::assertion_fail(char const*, char const*, int, char const*) /usr/lib/libCGAL.so.10 0x7ffff76f9ee9
7 CGAL::convex_decomposition_3<CGAL::Nef_polyhedron_3<CGAL::Epeck, CGAL::SNC_indexed_items, bool> > convex_decomposition_3.h 141 0x596500
8 CGAL::minkowski_sum_3<CGAL::Nef_polyhedron_3<CGAL::Epeck, CGAL::SNC_indexed_items, bool> > minkowski_sum_3.h 91 0x59c691
9 main glide.cpp 35 0x4cbdfb
可能,Nef多面体不允许相交。
有什么办法能逃出来吗?帮助是非常感谢的。
发布于 2014-02-09 18:42:30
我问过CGAL开发人员,他们回答说代码不允许自相交的多行代码。你得自己分开你的分界线。
https://stackoverflow.com/questions/21352333
复制相似问题