我想使用 Tetgen 通过四面体化计算给定点集的体积。我已经在代码中看到了这样做的一个片段,可能只需要一些调整。
我遇到的问题是让 tetcall(tetgen 的测试程序)开始运行。如果我想编译它(在 Linux 终端中使用 g++ -o test tetcall.cxx -L./ -ltet )。我得到:
test.cpp:183:24:警告:不推荐从字符串常量到“char*”的转换 [-Wwrite-strings] test.cpp:184:23:警告:不推荐从字符串常量到“char*”的转换 [-Wwrite-字符串] test.cpp:190:30: 错误:无法将参数 '1' 的 'tetgenio::polygon*' 转换为 'tetgenbehavior*' 到 'void tetrahedralize(tetgenbehavior*, tetgenio*, tetgenio*, tetgenio*, tetgenio* )' test.cpp:193:26: 警告:不推荐从字符串常量转换为 'char*' [-Wwrite-strings] test.cpp:194:29: 警告:不推荐从字符串常量转换为 'char*' [- Wwrite-strings] test.cpp:195:26: 警告:不推荐从字符串常量到 'char*' 的转换 [-Wwrite-strings]
在命令中是否包含 -L./ -ltet 似乎与错误无关。
我认为那些警告不是这样的问题。我不明白第 190 行 tetcall.cxx 调用函数 tetrahedralize 的错误:
tetrahedralize("pq1.414a0.1", &in, &out);
不起作用,我没有更改任何内容,并从站点 [http://tetgen.berlios.de/][1] 获得了$ make tetlib
所有内容a) 在同一张地图中。我认为编译器想要连接的函数,以及它可能向南的地方,在 tetgen.cxx 第 34498 行
void tetrahedralize(tetgenbehavior *b, tetgenio *in, tetgenio *out,
tetgenio *addin, tetgenio *bgmin)
我查看了标题中的 tetgenbehavior 类,但我无法真正弄清楚变量 tetgenbehavior *b 是什么或如何找出它的类型。我看到一些我认为是开关的 char 成员。我做错了什么,错误的原因是什么?