0

我想在我的 C++ 项目中添加一个平滑函数,所以我试图smooth_mesh()在 CGAL 库中使用该函数。此功能需要 ceres-solver 才能工作(以及 glog 和 Eigen),因此我将其包含在项目的包含文件夹中。

我的问题是,当我尝试启动 aCGAL::Polygon_mesh_processing::smooth_mesh()时,它返回一个错误(即使一切编译正确):

Area-based smoothing requires the Ceres Library, which is not available.

我使用该功能的完整方式如下:

CGAL::Polygon_mesh_processing::smooth_mesh(mesh,
                       CGAL::Polygon_mesh_processing::parameters::number_of_iterations(nb_iterations)
                            .use_area_smoothing(true)
                            .use_safety_constraints(false)
                            .edge_is_constrained_map(eif));

堆栈上有一个非常相似的问题,但给定的解决方案并没有帮助我解决我的问题。答案指示我使用,#define CGAL_PMP_USE_CERES_SOLVER但即使这样,错误仍在发生。

它还提到了 Cmake,但我没有使用 CMake 构建我的项目或库,因为 CGAL 指令使用 vcpkg,所以我猜测这可能是问题出在考虑我发现使用 Cmake 的大多数 ceres 文档的地方。但是使用 Cmake 链接 ceres 和 cgal 的说明很难找到和/或不太清楚(而且我对 Cmake 也很陌生,所以这无济于事......)。

我尝试将库手动添加到我的项目设置中(我在 Windows 上使用 Visual Studio),在某些文件中添加一些#include链接,但似乎没有任何效果。cerescgal

我希望这里有人遇到这个问题并设法解决它。如果您能帮助我,请提前感谢您!

4

0 回答 0