[Bf-blender-cvs] [45b810e1f8b] master: Fix T61935 Crash when importing Alembic from Meshroom

Sybren A. Stüvel noreply at git.blender.org
Fri Apr 12 15:07:48 CEST 2019


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;
 	}



More information about the Bf-blender-cvs mailing list