From 966f75db9b3188bcbbc69f8c3f8d205499250995 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 1 Nov 2013 14:47:25 -0700 Subject: [PATCH] Sanity check to prevent crash in Model::simulate. --- interface/src/renderer/FBXReader.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/interface/src/renderer/FBXReader.cpp b/interface/src/renderer/FBXReader.cpp index 2304d24e9d..ccc2c2f24c 100644 --- a/interface/src/renderer/FBXReader.cpp +++ b/interface/src/renderer/FBXReader.cpp @@ -1176,6 +1176,10 @@ FBXGeometry extractFBXGeometry(const FBXNode& node, const QVariantHash& mapping) // see http://stackoverflow.com/questions/13566608/loading-skinning-information-from-fbx for a discussion // of skinning information in FBX fbxCluster.jointIndex = modelIDs.indexOf(jointID); + if (fbxCluster.jointIndex == -1) { + qDebug() << "Joint not in model list: " << jointID << "\n"; + fbxCluster.jointIndex = 0; + } fbxCluster.inverseBindMatrix = glm::inverse(cluster.transformLink) * modelTransform; extracted.mesh.clusters.append(fbxCluster); } @@ -1185,6 +1189,10 @@ FBXGeometry extractFBXGeometry(const FBXNode& node, const QVariantHash& mapping) if (extracted.mesh.clusters.isEmpty()) { FBXCluster cluster; cluster.jointIndex = modelIDs.indexOf(modelID); + if (cluster.jointIndex == -1) { + qDebug() << "Model not in model list: " << modelID << "\n"; + cluster.jointIndex = 0; + } extracted.mesh.clusters.append(cluster); }