patrikhuber / eos

A lightweight 3D Morphable Face Model library in modern C++
Apache License 2.0
1.89k stars 596 forks source link

build error after switch glm 0.9.9 to 0.9.9.8 #318

Closed tachikoma777 closed 1 year ago

tachikoma777 commented 3 years ago

Hi, I am using release version 1.1.2 and after switching glm from v0.9.9 to v0.9.9.8 and met following error: error: call to implicitly-deleted copy constructor of 'tmat4x4<ceres::Jet<double, 23> >' (aka 'glm::mat<4, 4, ceres::Jet<double, 23>, glm::qualifier::packed_highp>') tmat4x4<T> rotateMatrix = glm::mat4_cast(rotateQuat); Does anyone knows how to fix this? code works fine with glm v0.9.9, but I have to using newest glm for certain reason. Thanks!

patrikhuber commented 3 years ago

Hi,

Updating GLM in eos to the latest version would be a good idea. My longer-term plan is to remove GLM altogether, and use Eigen for all vector types and operations. Eigen plays much better together with Ceres and pybind11.

I think you could ask about this compile error on the GLM forums/repo. It looks like they may have changed something, which hinders GLM working with ceres::Jet<T>, or perhaps some other/new #define is needed.

patrikhuber commented 1 year ago

I've just released eos v1.4.0, which removes GLM altogether, and replaces it with Eigen everywhere! That makes the whole fitting with Ceres much, much nicer and easier, and no more GLM issues with ceres::Jet.