diff --git a/libs/geom/include/psemek/geom/quaternion.hpp b/libs/geom/include/psemek/geom/quaternion.hpp index da1de6d3..497178de 100644 --- a/libs/geom/include/psemek/geom/quaternion.hpp +++ b/libs/geom/include/psemek/geom/quaternion.hpp @@ -165,6 +165,12 @@ namespace psemek::geom return {res[0], res[1], res[2]}; } + template + T angle(quaternion const & q0, quaternion const & q1) + { + return std::acos(std::min(T{1}, std::abs(dot(q0.coords, q1.coords)))); + } + template quaternion slerp(quaternion const & q0, quaternion const & q1, T const & t) { @@ -191,5 +197,4 @@ namespace psemek::geom } } - }