Alembic: replaced BLI_assert() with comment why the assert is wrong
authorSybren A. Stüvel <sybren@stuvel.eu>
Fri, 8 Jun 2018 13:49:33 +0000 (15:49 +0200)
committerSybren A. Stüvel <sybren@stuvel.eu>
Fri, 8 Jun 2018 13:51:49 +0000 (15:51 +0200)
The comment also hints at what should be fixed, instead.

source/blender/alembic/intern/abc_util.cc

index 6787d11..53860ab 100644 (file)
@@ -181,11 +181,11 @@ void copy_m44_axis_swap(float dst_mat[4][4], float src_mat[4][4], AbcAxisSwapMod
        unit_m3(dst_rot);
        unit_m4(dst_scale_mat);
 
-       /* We assume there is no sheer component and no homogeneous scaling component. */
-       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);
+       /* TODO(Sybren): This code assumes there is no sheer component and no
+        * homogeneous scaling component, which is not always true when writing
+        * non-hierarchical (e.g. flat) objects (e.g. when parent has non-uniform
+        * scale and the child rotates). This is currently not taken into account
+        * when axis-swapping. */
 
        /* Extract translation, rotation, and scale form matrix. */
        mat4_to_loc_rot_size(src_trans, src_rot, src_scale, src_mat);