15 #ifndef GEOMETRY__QUATERNION__OPERATOR_HPP_
16 #define GEOMETRY__QUATERNION__OPERATOR_HPP_
19 #include <geometry_msgs/msg/quaternion.hpp>
26 typename T,
typename U,
27 std::enable_if_t<std::conjunction_v<IsLikeQuaternion<T>, IsLikeQuaternion<U>>, std::nullptr_t> =
40 typename T,
typename U,
41 std::enable_if_t<std::conjunction_v<IsLikeQuaternion<T>, IsLikeQuaternion<U>>, std::nullptr_t> =
54 typename T,
typename U,
55 std::enable_if_t<std::conjunction_v<IsLikeQuaternion<T>, IsLikeQuaternion<U>>, std::nullptr_t> =
60 v.x = a.w * b.x - a.z * b.y + a.y * b.z + a.x * b.w;
61 v.y = a.z * b.x + a.w * b.y - a.x * b.z + a.y * b.w;
62 v.z = -a.y * b.x + a.x * b.y + a.w * b.z + a.z * b.w;
63 v.w = -a.x * b.x - a.y * b.y - a.z * b.z + a.w * b.w;
68 typename T,
typename U,
69 std::enable_if_t<std::conjunction_v<IsLikeQuaternion<T>, IsLikeQuaternion<U>>, std::nullptr_t> =
auto operator*(const T &a, const U &b)
Definition: operator.hpp:57
auto operator+=(T &a, const U &b) -> decltype(auto)
Definition: operator.hpp:71
auto operator-(const T &a, const U &b)
Definition: operator.hpp:43
auto operator+(const T &a, const U &b)
Definition: operator.hpp:29
Definition: bounding_box.hpp:32