|
@@ -238,6 +238,29 @@ namespace detail{
|
|
|
q.w / s, q.x / s, q.y / s, q.z / s);
|
|
q.w / s, q.x / s, q.y / s, q.z / s);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //////////////////////////////////////
|
|
|
|
|
+ // Boolean operators
|
|
|
|
|
+
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline bool operator==
|
|
|
|
|
+ (
|
|
|
|
|
+ detail::tquat<T> const & q1,
|
|
|
|
|
+ detail::tquat<T> const & q2
|
|
|
|
|
+ )
|
|
|
|
|
+ {
|
|
|
|
|
+ return (q1.x == q2.x) && (q1.y == q2.y) && (q1.z == q2.z) && (q1.w == q2.w);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ inline bool operator!=
|
|
|
|
|
+ (
|
|
|
|
|
+ detail::tquat<T> const & q1,
|
|
|
|
|
+ detail::tquat<T> const & q2
|
|
|
|
|
+ )
|
|
|
|
|
+ {
|
|
|
|
|
+ return (q1.x != q2.x) || (q1.y != q2.y) || (q1.z != q2.z) || (q1.w != q2.w);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}//namespace detail
|
|
}//namespace detail
|
|
|
|
|
|
|
|
namespace gtc{
|
|
namespace gtc{
|