|
@@ -156,6 +156,20 @@ namespace detail{
|
|
|
return detail::tquat<T>(-q.w, -q.x, -q.y, -q.z);
|
|
return detail::tquat<T>(-q.w, -q.x, -q.y, -q.z);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline detail::tquat<T> operator*
|
|
|
|
|
+ (
|
|
|
|
|
+ detail::tquat<T> const & q,
|
|
|
|
|
+ detail::tquat<T> const & p
|
|
|
|
|
+ )
|
|
|
|
|
+ {
|
|
|
|
|
+ return detail::tquat<T>(
|
|
|
|
|
+ q.w * p.w - q.x * p.x - q.y * p.y - q.z * p.z,
|
|
|
|
|
+ q.w * p.x + q.x * p.w + q.y * p.z - q.z * p.y,
|
|
|
|
|
+ q.w * p.y + q.y * p.w + q.z * p.x - q.x * p.z,
|
|
|
|
|
+ q.w * p.z + q.z * p.w + q.x * p.y - q.y * p.x);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Transformation
|
|
// Transformation
|
|
|
template <typename T>
|
|
template <typename T>
|
|
|
inline detail::tvec3<T> operator*
|
|
inline detail::tvec3<T> operator*
|