使用独立于包的几何对象

Using geometrical objects independent from package

我有一个包含点、单元格和面的 3D 网格。我不想扩展我的代码的功能,而是想使用一个完善的库 CGAL。我仍然会有自己的代码,CGAL 将只管理几何部分。

最接近我的情况的包裹似乎是 Linear Cell Complex。在下面的代码中(完整示例是 here),我不喜欢的是必须定义 LCC_3 才能创建两个四面体。就我而言,我想将一个四面体与我的每个网格单元相关联。所以我不想每次都创建一个LCC_3。有没有比 LCC 更简单的包来处理这种情况?我可以使四面体独立于包吗?

LCC_3 lcc;
// Create two tetrahedra.
Dart_handle d1 = lcc.make_tetrahedron(Point(-1, 0, 0), Point(0, 2, 0), 
                                      Point(1, 0, 0), Point(1, 1, 2));
Dart_handle d2 = lcc.make_tetrahedron(Point(0, 2, -1), Point(-1, 0, 1),
                                      Point(1, 0, -1), Point(1, 1, -3));

我不确定我是否完全理解你的问题。如果你只需要一个几何对象(没有连通性),你可以简单地使用CGAL::Tetrahedron_3,见http://doc.cgal.org/latest/Kernel_23/classCGAL_1_1Tetrahedron__3.html