diff options
Diffstat (limited to 'core/math/quat.cpp')
-rw-r--r-- | core/math/quat.cpp | 19 |
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)); +} |