|
@@ -341,17 +341,17 @@ Vector3 Vector3::operator-() const {
|
|
|
|
|
|
bool Vector3::operator==(const Vector3 &p_v) const {
|
|
|
|
|
|
- return (x == p_v.x && y == p_v.y && z == p_v.z);
|
|
|
+ return (Math::is_equal_approx(x, p_v.x) && Math::is_equal_approx(y, p_v.y) && Math::is_equal_approx(z, p_v.z));
|
|
|
}
|
|
|
|
|
|
bool Vector3::operator!=(const Vector3 &p_v) const {
|
|
|
- return (x != p_v.x || y != p_v.y || z != p_v.z);
|
|
|
+ return (!Math::is_equal_approx(x, p_v.x) || !Math::is_equal_approx(y, p_v.y) || !Math::is_equal_approx(z, p_v.z));
|
|
|
}
|
|
|
|
|
|
bool Vector3::operator<(const Vector3 &p_v) const {
|
|
|
|
|
|
- if (x == p_v.x) {
|
|
|
- if (y == p_v.y)
|
|
|
+ if (Math::is_equal_approx(x, p_v.x)) {
|
|
|
+ if (Math::is_equal_approx(y, p_v.y))
|
|
|
return z < p_v.z;
|
|
|
else
|
|
|
return y < p_v.y;
|
|
@@ -362,8 +362,8 @@ bool Vector3::operator<(const Vector3 &p_v) const {
|
|
|
|
|
|
bool Vector3::operator<=(const Vector3 &p_v) const {
|
|
|
|
|
|
- if (x == p_v.x) {
|
|
|
- if (y == p_v.y)
|
|
|
+ if (Math::is_equal_approx(x, p_v.x)) {
|
|
|
+ if (Math::is_equal_approx(y, p_v.y))
|
|
|
return z <= p_v.z;
|
|
|
else
|
|
|
return y < p_v.y;
|
|
@@ -402,13 +402,14 @@ real_t Vector3::length_squared() const {
|
|
|
|
|
|
void Vector3::normalize() {
|
|
|
|
|
|
- real_t l = length();
|
|
|
- if (l == 0) {
|
|
|
+ real_t lengthsq = length_squared();
|
|
|
+ if (lengthsq == 0) {
|
|
|
x = y = z = 0;
|
|
|
} else {
|
|
|
- x /= l;
|
|
|
- y /= l;
|
|
|
- z /= l;
|
|
|
+ real_t length = Math::sqrt(lengthsq);
|
|
|
+ x /= length;
|
|
|
+ y /= length;
|
|
|
+ z /= length;
|
|
|
}
|
|
|
}
|
|
|
|