Fix T61935 Crash when importing Alembic from Meshroom
authorSybren A. Stüvel <sybren@stuvel.eu>
Fri, 12 Apr 2019 12:51:17 +0000 (14:51 +0200)
committerSybren A. Stüvel <sybren@stuvel.eu>
Fri, 12 Apr 2019 12:52:09 +0000 (14:52 +0200)
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.

source/blender/alembic/intern/abc_object.cc

index 20a43a8..d8bd921 100644 (file)
@@ -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;
        }