summaryrefslogtreecommitdiff
path: root/core/math/vector3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/math/vector3.cpp')
-rw-r--r--core/math/vector3.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp
index 2ab5fa0465..7fdb54bb69 100644
--- a/core/math/vector3.cpp
+++ b/core/math/vector3.cpp
@@ -176,6 +176,17 @@ Vector3 Vector3::cubic_interpolate(const Vector3& p_b,const Vector3& p_pre_a, co
return out;
}
# endif
+bool Vector3::nan_equals(const Vector3& p_v) const {
+ return (x == p_v.x && y == p_v.y && z == p_v.z) ||
+ (x == p_v.x && y == p_v.y && isnan(z) && isnan(p_v.z)) ||
+ (x == p_v.x && isnan(y) && isnan(p_v.y) && z == p_v.z) ||
+ (isnan(x) && isnan(p_v.x) && y == p_v.y && z == p_v.z) ||
+ (x == p_v.x && isnan(y) && isnan(p_v.y) && isnan(z) && isnan(p_v.z)) ||
+ (isnan(x) && isnan(p_v.x) && y == p_v.y && isnan(z) && isnan(p_v.z)) ||
+ (isnan(x) && isnan(p_v.x) && isnan(y) && isnan(p_v.y) && z == p_v.z) ||
+ (isnan(x) && isnan(p_v.x) && isnan(y) && isnan(p_v.y) && isnan(z) && isnan(p_v.z));
+}
+
Vector3::operator String() const {
return (rtos(x)+", "+rtos(y)+", "+rtos(z));