From 7e971d9f638db29519c5eaee59bf5f2d78c8df74 Mon Sep 17 00:00:00 2001 From: Xuchen Han Date: Tue, 20 Aug 2019 11:12:36 -0700 Subject: [PATCH] safe guard against NaN in dv after CG solve --- src/BulletSoftBody/btDeformableBodySolver.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/BulletSoftBody/btDeformableBodySolver.cpp b/src/BulletSoftBody/btDeformableBodySolver.cpp index 85730cc1e..d36c19718 100644 --- a/src/BulletSoftBody/btDeformableBodySolver.cpp +++ b/src/BulletSoftBody/btDeformableBodySolver.cpp @@ -103,6 +103,11 @@ void btDeformableBodySolver::updateVelocity() btSoftBody* psb = m_softBodySet[i]; for (int j = 0; j < psb->m_nodes.size(); ++j) { + // set NaN to zero; + if (m_dv[counter] != m_dv[counter]) + { + m_dv[counter].setZero(); + } psb->m_nodes[j].m_v = m_backupVelocity[counter]+m_dv[counter]; ++counter; }