From 8fe3f475961fe260f832d4869e19e9fed9db4c42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 28 Feb 2017 16:42:25 +0100 Subject: [PATCH] Alembic: more lenient check on absence of sheer & homogeneous scaling Checking precise values of floats is not a good idea. --- source/blender/alembic/intern/abc_util.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/alembic/intern/abc_util.cc b/source/blender/alembic/intern/abc_util.cc index 194f4c276d1..2274a50ad7d 100644 --- a/source/blender/alembic/intern/abc_util.cc +++ b/source/blender/alembic/intern/abc_util.cc @@ -178,10 +178,10 @@ void copy_m44_axis_swap(float dst_mat[4][4], float src_mat[4][4], AbcAxisSwapMod unit_m4(dst_scale_mat); /* We assume there is no sheer component and no homogeneous scaling component. */ - BLI_assert(src_mat[0][3] == 0.0); - BLI_assert(src_mat[1][3] == 0.0); - BLI_assert(src_mat[2][3] == 0.0); - BLI_assert(src_mat[3][3] == 1.0); + BLI_assert(fabs(src_mat[0][3]) < 2 * FLT_EPSILON); + BLI_assert(fabs(src_mat[1][3]) < 2 * FLT_EPSILON); + BLI_assert(fabs(src_mat[2][3]) < 2 * FLT_EPSILON); + BLI_assert(fabs(src_mat[3][3] - 1.0f) < 2 * FLT_EPSILON); /* Extract translation, rotation, and scale form matrix. */ mat4_to_loc_rot_size(src_trans, src_rot, src_scale, src_mat);