C++ プロジェクトにスムージング関数を追加したいのでsmooth_mesh()
、CGAL ライブラリでその関数を使用しようとしています。この関数を使用するには ceres-solver (および glog と Eigen) が必要なので、プロジェクトのインクルード フォルダーに含めました。
私の問題は、を起動しようとするとCGAL::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についても言及していますが、CGAL命令はvcpkgを使用しているため、プロジェクトもライブラリもCMakeでビルドしていません。Cmakeを使用していることがわかったほとんどのceresドキュメントを検討することから問題が発生する可能性があると推測しています。しかし、Cmake を使用して ceres と cgal をリンクする手順は、見つけるのがかなり難しいか、あまり明確ではありません (また、私は Cmake に非常に慣れていないため、役に立ちません...)。
ライブラリをプロジェクト設定に手動で追加しようとしましたが (Windows で Visual Studio を使用しています)、いくつかのファイルに#include
リンクを追加しましたが、何も機能していないようです。ceres
cgal
ここの誰かがこの問題に遭遇し、なんとか解決したことを願っています。あなたが私を助けることができるなら、事前に感謝します!