mirror of
https://github.com/godotengine/godot
synced 2024-09-05 20:19:49 +00:00
Merge pull request #49754 from aaronfranke/is-eq-approx-sub-opt
Fix sub-optimal uses of is_equal_approx
This commit is contained in:
commit
671bd64e4a
|
@ -1544,7 +1544,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 s = xform.basis.get_scale();
|
Vector3 s = xform.basis.get_scale();
|
||||||
bool singular_matrix = Math::is_equal_approx(s.x, 0.0f) || Math::is_equal_approx(s.y, 0.0f) || Math::is_equal_approx(s.z, 0.0f);
|
bool singular_matrix = Math::is_zero_approx(s.x) || Math::is_zero_approx(s.y) || Math::is_zero_approx(s.z);
|
||||||
Quaternion q = singular_matrix ? Quaternion() : xform.basis.get_rotation_quaternion();
|
Quaternion q = singular_matrix ? Quaternion() : xform.basis.get_rotation_quaternion();
|
||||||
Vector3 l = xform.origin;
|
Vector3 l = xform.origin;
|
||||||
|
|
||||||
|
@ -1595,7 +1595,7 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
|
||||||
xform = sk->get_bone_rest(nm.bone).affine_inverse() * xform;
|
xform = sk->get_bone_rest(nm.bone).affine_inverse() * xform;
|
||||||
|
|
||||||
Vector3 s = xform.basis.get_scale();
|
Vector3 s = xform.basis.get_scale();
|
||||||
bool singular_matrix = Math::is_equal_approx(s.x, 0.0f) || Math::is_equal_approx(s.y, 0.0f) || Math::is_equal_approx(s.z, 0.0f);
|
bool singular_matrix = Math::is_zero_approx(s.x) || Math::is_zero_approx(s.y) || Math::is_zero_approx(s.z);
|
||||||
Quaternion q = singular_matrix ? Quaternion() : xform.basis.get_rotation_quaternion();
|
Quaternion q = singular_matrix ? Quaternion() : xform.basis.get_rotation_quaternion();
|
||||||
Vector3 l = xform.origin;
|
Vector3 l = xform.origin;
|
||||||
|
|
||||||
|
|
|
@ -224,7 +224,7 @@ void EditorSceneImporterMesh::generate_lods() {
|
||||||
}
|
}
|
||||||
Surface::LOD lod;
|
Surface::LOD lod;
|
||||||
lod.distance = mesh_error;
|
lod.distance = mesh_error;
|
||||||
if (Math::is_equal_approx(mesh_error, 0.0f)) {
|
if (Math::is_zero_approx(mesh_error)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (new_len <= 0) {
|
if (new_len <= 0) {
|
||||||
|
|
|
@ -420,7 +420,7 @@ Ref<StandardMaterial3D> FBXMaterial::import_material(ImportState &state) {
|
||||||
} break;
|
} break;
|
||||||
case PROPERTY_DESC_COAT_ROUGHNESS: {
|
case PROPERTY_DESC_COAT_ROUGHNESS: {
|
||||||
// meaning is that approx equal to zero is disabled not actually zero. ;)
|
// meaning is that approx equal to zero is disabled not actually zero. ;)
|
||||||
if (real_value && Math::is_equal_approx(real_value->Value(), 0.0f)) {
|
if (real_value && Math::is_zero_approx(real_value->Value())) {
|
||||||
print_verbose("clearcoat real value: " + rtos(real_value->Value()));
|
print_verbose("clearcoat real value: " + rtos(real_value->Value()));
|
||||||
spatial_material->set_clearcoat_gloss(1.0 - real_value->Value());
|
spatial_material->set_clearcoat_gloss(1.0 - real_value->Value());
|
||||||
} else {
|
} else {
|
||||||
|
@ -428,7 +428,7 @@ Ref<StandardMaterial3D> FBXMaterial::import_material(ImportState &state) {
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case PROPERTY_DESC_EMISSIVE: {
|
case PROPERTY_DESC_EMISSIVE: {
|
||||||
if (real_value && Math::is_equal_approx(real_value->Value(), 0.0f)) {
|
if (real_value && Math::is_zero_approx(real_value->Value())) {
|
||||||
print_verbose("Emissive real value: " + rtos(real_value->Value()));
|
print_verbose("Emissive real value: " + rtos(real_value->Value()));
|
||||||
spatial_material->set_emission_energy(real_value->Value());
|
spatial_material->set_emission_energy(real_value->Value());
|
||||||
} else if (vector_value && !vector_value->Value().is_equal_approx(Vector3(0, 0, 0))) {
|
} else if (vector_value && !vector_value->Value().is_equal_approx(Vector3(0, 0, 0))) {
|
||||||
|
|
|
@ -1167,7 +1167,7 @@ Transform3D ReadMatrix(const ElementPtr element) {
|
||||||
|
|
||||||
// clean values to prevent any IBM damage on inverse() / affine_inverse()
|
// clean values to prevent any IBM damage on inverse() / affine_inverse()
|
||||||
for (float &value : values) {
|
for (float &value : values) {
|
||||||
if (::Math::is_equal_approx(0, value)) {
|
if (::Math::is_zero_approx(value)) {
|
||||||
value = 0;
|
value = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,15 +137,15 @@ public:
|
||||||
|
|
||||||
static Vector3 safe_import_vector3(const Vector3 &p_vec) {
|
static Vector3 safe_import_vector3(const Vector3 &p_vec) {
|
||||||
Vector3 vector = p_vec;
|
Vector3 vector = p_vec;
|
||||||
if (Math::is_equal_approx(0, vector.x)) {
|
if (Math::is_zero_approx(vector.x)) {
|
||||||
vector.x = 0;
|
vector.x = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Math::is_equal_approx(0, vector.y)) {
|
if (Math::is_zero_approx(vector.y)) {
|
||||||
vector.y = 0;
|
vector.y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Math::is_equal_approx(0, vector.z)) {
|
if (Math::is_zero_approx(vector.z)) {
|
||||||
vector.z = 0;
|
vector.z = 0;
|
||||||
}
|
}
|
||||||
return vector;
|
return vector;
|
||||||
|
|
|
@ -3596,7 +3596,7 @@ void GLTFDocument::spec_gloss_to_rough_metal(Ref<GLTFSpecGloss> r_spec_gloss, Re
|
||||||
if (!Math::is_equal_approx(mr.g, 1.0f)) {
|
if (!Math::is_equal_approx(mr.g, 1.0f)) {
|
||||||
has_roughness = true;
|
has_roughness = true;
|
||||||
}
|
}
|
||||||
if (!Math::is_equal_approx(mr.b, 0.0f)) {
|
if (!Math::is_zero_approx(mr.b)) {
|
||||||
has_metal = true;
|
has_metal = true;
|
||||||
}
|
}
|
||||||
mr.g *= r_spec_gloss->gloss_factor;
|
mr.g *= r_spec_gloss->gloss_factor;
|
||||||
|
|
|
@ -278,24 +278,24 @@ TEST_CASE("[AABB] Get endpoints") {
|
||||||
TEST_CASE("[AABB] Get longest/shortest axis") {
|
TEST_CASE("[AABB] Get longest/shortest axis") {
|
||||||
const AABB aabb = AABB(Vector3(-1.5, 2, -2.5), Vector3(4, 5, 6));
|
const AABB aabb = AABB(Vector3(-1.5, 2, -2.5), Vector3(4, 5, 6));
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
aabb.get_longest_axis().is_equal_approx(Vector3(0, 0, 1)),
|
aabb.get_longest_axis() == Vector3(0, 0, 1),
|
||||||
"get_longest_axis() should return the expected value.");
|
"get_longest_axis() should return the expected value.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
aabb.get_longest_axis_index() == Vector3::AXIS_Z,
|
aabb.get_longest_axis_index() == Vector3::AXIS_Z,
|
||||||
"get_longest_axis() should return the expected value.");
|
"get_longest_axis_index() should return the expected value.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(aabb.get_longest_axis_size(), 6),
|
aabb.get_longest_axis_size() == 6,
|
||||||
"get_longest_axis() should return the expected value.");
|
"get_longest_axis_size() should return the expected value.");
|
||||||
|
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
aabb.get_shortest_axis().is_equal_approx(Vector3(1, 0, 0)),
|
aabb.get_shortest_axis() == Vector3(1, 0, 0),
|
||||||
"get_shortest_axis() should return the expected value.");
|
"get_shortest_axis() should return the expected value.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
aabb.get_shortest_axis_index() == Vector3::AXIS_X,
|
aabb.get_shortest_axis_index() == Vector3::AXIS_X,
|
||||||
"get_shortest_axis() should return the expected value.");
|
"get_shortest_axis_index() should return the expected value.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(aabb.get_shortest_axis_size(), 4),
|
aabb.get_shortest_axis_size() == 4,
|
||||||
"get_shortest_axis() should return the expected value.");
|
"get_shortest_axis_size() should return the expected value.");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
|
|
|
@ -80,7 +80,7 @@ TEST_CASE("[Curve] Custom curve with free tangents") {
|
||||||
"Custom free curve should contain the expected number of points.");
|
"Custom free curve should contain the expected number of points.");
|
||||||
|
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate(-0.1), 0),
|
Math::is_zero_approx(curve->interpolate(-0.1)),
|
||||||
"Custom free curve should return the expected value at offset 0.1.");
|
"Custom free curve should return the expected value at offset 0.1.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate(0.1), (real_t)0.352),
|
Math::is_equal_approx(curve->interpolate(0.1), (real_t)0.352),
|
||||||
|
@ -99,7 +99,7 @@ TEST_CASE("[Curve] Custom curve with free tangents") {
|
||||||
"Custom free curve should return the expected value at offset 0.1.");
|
"Custom free curve should return the expected value at offset 0.1.");
|
||||||
|
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate_baked(-0.1), 0),
|
Math::is_zero_approx(curve->interpolate_baked(-0.1)),
|
||||||
"Custom free curve should return the expected baked value at offset 0.1.");
|
"Custom free curve should return the expected baked value at offset 0.1.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate_baked(0.1), (real_t)0.352),
|
Math::is_equal_approx(curve->interpolate_baked(0.1), (real_t)0.352),
|
||||||
|
@ -169,7 +169,7 @@ TEST_CASE("[Curve] Custom curve with linear tangents") {
|
||||||
"Custom linear curve should contain the expected number of points.");
|
"Custom linear curve should contain the expected number of points.");
|
||||||
|
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate(-0.1), 0),
|
Math::is_zero_approx(curve->interpolate(-0.1)),
|
||||||
"Custom linear curve should return the expected value at offset -0.1.");
|
"Custom linear curve should return the expected value at offset -0.1.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate(0.1), (real_t)0.4),
|
Math::is_equal_approx(curve->interpolate(0.1), (real_t)0.4),
|
||||||
|
@ -188,7 +188,7 @@ TEST_CASE("[Curve] Custom curve with linear tangents") {
|
||||||
"Custom linear curve should return the expected value at offset 2.0.");
|
"Custom linear curve should return the expected value at offset 2.0.");
|
||||||
|
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate_baked(-0.1), 0),
|
Math::is_zero_approx(curve->interpolate_baked(-0.1)),
|
||||||
"Custom linear curve should return the expected baked value at offset -0.1.");
|
"Custom linear curve should return the expected baked value at offset -0.1.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(curve->interpolate_baked(0.1), (real_t)0.4),
|
Math::is_equal_approx(curve->interpolate_baked(0.1), (real_t)0.4),
|
||||||
|
|
|
@ -83,7 +83,7 @@ TEST_CASE("[JSON] Parsing single data types") {
|
||||||
json.get_error_line() == 0,
|
json.get_error_line() == 0,
|
||||||
"Parsing a floating-point number as JSON should parse successfully.");
|
"Parsing a floating-point number as JSON should parse successfully.");
|
||||||
CHECK_MESSAGE(
|
CHECK_MESSAGE(
|
||||||
Math::is_equal_approx(json.get_data(), 0.123456),
|
Math::is_equal_approx(double(json.get_data()), 0.123456),
|
||||||
"Parsing a floating-point number as JSON should return the expected value.");
|
"Parsing a floating-point number as JSON should return the expected value.");
|
||||||
|
|
||||||
json.parse("\"hello\"");
|
json.parse("\"hello\"");
|
||||||
|
|
Loading…
Reference in a new issue