Skip to content

Commit 78d02c7

Browse files
committed
bugfix: crash in btSoftBody::setPose() due to singular matrix
1 parent 6b127a4 commit 78d02c7

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/main/native/bullet3/BulletSoftBody/btSoftBody.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,12 @@ void btSoftBody::setPose(bool bvolume, bool bframe)
12251225
m_pose.m_aqq[1] += mq.y() * q;
12261226
m_pose.m_aqq[2] += mq.z() * q;
12271227
}
1228+
btScalar det = m_pose.m_aqq.determinant();// stephengold added 2026-03-22
1229+
if (btFabs(det) > SIMD_EPSILON) {// stephengold added 2026-03-22
12281230
m_pose.m_aqq = m_pose.m_aqq.inverse();
1231+
} else {// stephengold added 2026-03-22
1232+
m_pose.m_aqq.setIdentity();// stephengold added 2026-03-22
1233+
}// stephengold added 2026-03-22
12291234

12301235
updateConstants();
12311236
}

0 commit comments

Comments
 (0)