Commit: 45b810e1f8b088f3dc5329cfb0fe01092a156a6c
Author: Sybren A. Stüvel
Date:   Fri Apr 12 14:51:17 2019 +0200
Branches: master
https://developer.blender.org/rB45b810e1f8b088f3dc5329cfb0fe01092a156a6c

Fix T61935 Crash when importing Alembic from Meshroom

The Alembic importer can now deal with XForm-less objects. Apparently
MeshLab exports point clouds without parent transformation matrix (XForm in
Alembic-speak). We shouldn't warn about this, but handle it properly
instead.

===================================================================

M       source/blender/alembic/intern/abc_object.cc

===================================================================

diff --git a/source/blender/alembic/intern/abc_object.cc 
b/source/blender/alembic/intern/abc_object.cc
index 20a43a821ed..d8bd92121aa 100644
--- a/source/blender/alembic/intern/abc_object.cc
+++ b/source/blender/alembic/intern/abc_object.cc
@@ -290,12 +290,8 @@ Alembic::AbcGeom::IXform AbcObjectReader::xform()
                return IXform(abc_parent, Alembic::AbcGeom::kWrapExisting);
        }
 
-       /* Should not happen. */
-       std::cerr << "AbcObjectReader::xform(): "
-                 << "unable to find IXform for Alembic object '"
-                 << m_iobject.getFullName() << "'\n";
-       BLI_assert(false);
-
+       /* This can happen in certain cases. For example, MeshLab exports
+        * point clouds without parent XForm. */
        return IXform();
 }
 
@@ -304,6 +300,8 @@ void AbcObjectReader::read_matrix(float r_mat[4][4], const 
float time,
 {
        IXform ixform = xform();
        if (!ixform) {
+               unit_m4(r_mat);
+               is_constant = true;
                return;
        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to