From 45b810e1f8b088f3dc5329cfb0fe01092a156a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 12 Apr 2019 14:51:17 +0200 Subject: 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. --- source/blender/alembic/intern/abc_object.cc | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'source') 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; } -- cgit v1.2.3