我想在我的 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
链接,但似乎没有任何效果。ceres
cgal
我希望这里有人遇到这个问题并设法解决它。如果您能帮助我,请提前感谢您!