|
@@ -139,7 +139,11 @@ struct [[nodiscard]] Quaternion {
|
|
|
#ifdef MATH_CHECKS
|
|
|
ERR_FAIL_COND_MSG(p_v0.is_zero_approx() || p_v1.is_zero_approx(), "The vectors must not be zero.");
|
|
|
#endif
|
|
|
- constexpr real_t ALMOST_ONE = 1.0f - (real_t)CMP_EPSILON;
|
|
|
+#ifdef REAL_T_IS_DOUBLE
|
|
|
+ constexpr real_t ALMOST_ONE = 0.999999999999999;
|
|
|
+#else
|
|
|
+ constexpr real_t ALMOST_ONE = 0.99999975f;
|
|
|
+#endif
|
|
|
Vector3 n0 = p_v0.normalized();
|
|
|
Vector3 n1 = p_v1.normalized();
|
|
|
real_t d = n0.dot(n1);
|
|
@@ -162,6 +166,7 @@ struct [[nodiscard]] Quaternion {
|
|
|
z = c.z * rs;
|
|
|
w = s * 0.5f;
|
|
|
}
|
|
|
+ normalize();
|
|
|
}
|
|
|
};
|
|
|
|