From e8076f528fcc0b4989a813f24d41beb88bed632e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 14 Jul 2021 22:35:03 +0300 Subject: [PATCH] Add geom::angle(quaternion, quaternion) --- libs/geom/include/psemek/geom/quaternion.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 } } - }