flexible-collision-library / fcl

Flexible Collision Library
https://flexible-collision-library.github.io/
Other
1.39k stars 417 forks source link

Benefit of using Eigen in FCL + using in VS #615

Open AdmiralPellaeon opened 5 months ago

AdmiralPellaeon commented 5 months ago

Hi,

what is the benefit of using Eigen in FCL? Is there a performance advantage?

And an issue: I tried to create a Visual studio solution with CMAKE including Eigen. I downloaded the latest Eigenversion, unpacked the file and provided the path in cmake. But every time I hit the configure button, the Eigen path seems wrong and it goes back to unknown directory. What does the FCL cmake project expect so that creating a solution with Eigen works? Or is it possible to add the Eigen support afterwards by setting a constant or similar?

Best regards

traversaro commented 5 months ago

what is the benefit of using Eigen in FCL? Is there a performance advantage?

The issue in which FCL switched to Eigen is https://github.com/flexible-collision-library/fcl/issues/96 , you can find some discussion there.

And an issue: I tried to create a Visual studio solution with CMAKE including Eigen. I downloaded the latest Eigenversion, unpacked the file and provided the path in cmake. But every time I hit the configure button, the Eigen path seems wrong and it goes back to unknown directory. What does the FCL cmake project expect so that creating a solution with Eigen works? Or is it possible to add the Eigen support afterwards by setting a constant or similar?

I think you need to install Eigen, and then add to the CMAKE_PREFIX_PATH variable to the location where you installed Eigen.

As a generic comment, did you considered using a package manager like vcpkg or conda with conda-forge to manage dependencies? Manually dealing with C++ dependencies tend to be difficult.

AdmiralPellaeon commented 5 months ago

@traversaro Thank you very much for the link to the discussion. Seems that the cmake generated solution is referencing Eigen but in an unsual way. It's not under the include paths but in the additional compiler options.

As a generic comment, did you considered using a package manager like vcpkg or conda with conda-forge to manage dependencies? Manually dealing with C++ dependencies tend to be difficult.

I sometimes use VCPKG. But the safety regulations on my working PC partly are in conflict with the tool. So I prefer building the projects by hand.