summaryrefslogtreecommitdiff
path: root/core/math/quat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/math/quat.cpp')
-rw-r--r--core/math/quat.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/math/quat.cpp b/core/math/quat.cpp
index 4085f9b84a..5ba5a7706b 100644
--- a/core/math/quat.cpp
+++ b/core/math/quat.cpp
@@ -284,3 +284,22 @@ Quat::Quat(const Vector3& axis, const real_t& angle) {
cos_angle);
}
}
+
+bool Quat::nan_equals(const Quat& q2) const {
+ return (x == q2.x && y == q2.y && z == q2.z && w == q2.w) ||
+ (x == q2.x && y == q2.y && z == q2.z && isnan(w) && isnan(q2.w)) ||
+ (x == q2.x && y == q2.y && isnan(z) && isnan(q2.z) && w == q2.w) ||
+ (x == q2.x && y == q2.y && isnan(z) && isnan(q2.z) && isnan(w) && isnan(q2.w)) ||
+ (x == q2.x && isnan(y) && isnan(q2.y) && z == q2.z && w == q2.w) ||
+ (x == q2.x && isnan(y) && isnan(q2.y) && z == q2.z && isnan(w) && isnan(q2.w)) ||
+ (x == q2.x && isnan(y) && isnan(q2.y) && isnan(z) && isnan(q2.z) && w == q2.w) ||
+ (x == q2.x && isnan(y) && isnan(q2.y) && isnan(z) && isnan(q2.z) && isnan(w) && isnan(q2.w)) ||
+ (isnan(x) && isnan(q2.x) && y == q2.y && z == q2.z && w == q2.w) ||
+ (isnan(x) && isnan(q2.x) && y == q2.y && z == q2.z && isnan(w) && isnan(q2.w)) ||
+ (isnan(x) && isnan(q2.x) && y == q2.y && isnan(z) && isnan(q2.z) && w == q2.w) ||
+ (isnan(x) && isnan(q2.x) && y == q2.y && isnan(z) && isnan(q2.z) && isnan(w) && isnan(q2.w)) ||
+ (isnan(x) && isnan(q2.x) && isnan(y) && isnan(q2.y) && z == q2.z && w == q2.w) ||
+ (isnan(x) && isnan(q2.x) && isnan(y) && isnan(q2.y) && z == q2.z && isnan(w) && isnan(q2.w)) ||
+ (isnan(x) && isnan(q2.x) && isnan(y) && isnan(q2.y) && isnan(z) && isnan(q2.z) && w == q2.w) ||
+ (isnan(x) && isnan(q2.x) && isnan(y) && isnan(q2.y) && isnan(z) && isnan(q2.z) && isnan(w) && isnan(q2.w));
+}